C\#에 깊이 들 어가 SqlDbType.Xml 형식 매개 변 수 를 사용 하 는 자세 한 설명

sql server 2005 및 그 후의 sql server 에 Xml 데이터 형식 을 도 입 했 습 니 다.C\#에서 Xml 데이터 형식 을 사용 하려 면 SqlDb Type 으로 매개 변수 유형 을 지정 해 야 합 니 다.매개 변수 유형 은 SqlXml 를 사용 해 야 합 니 다.다음 예제:표 A 가 있다 고 가정 하고 A 표 는 두 개의 필드 가 있 습 니 다.ID 유형 int,Data 유형 Xml,나 는 C\#로 표 에 한 줄 의 기록 을 삽입 하려 고 한다.

static void InsertA(int aid, string contentXml)
{
//ConnString ,
    using (SqlConnection conn = new SqlConnection(ConnString))
    {
        conn.Open();
        string sql = "INSERT INTO [A] ([ID],[Content])VALUES(@id,@content)";
        using (SqlCommand comm = new SqlCommand(sql, conn))
        {
            using (XmlTextReader rdr = new XmlTextReader(contentXml, XmlNodeType.Document, null))
            {
                SqlXml sqlXml = new SqlXml(rdr);

                SqlParameter parmID = new SqlParameter("@id", aid);
                SqlParameter parmContent = new SqlParameter("@content", SqlDbType.Xml, sqlXml.Value.Length);
                parmContent.Value = sqlXml;

                comm.Parameters.Add(parmID);
                comm.Parameters.Add(parmContent);
                comm.ExecuteNonQuery();
            }
        }
        conn.Close();
    }
}
데 이 터 를 삽입 할 때 SqlXml 데이터 형식 을 매개 변수 값 으로 해 야 하지만,Xml 형식의 데 이 터 를 읽 을 때의 C\#데이터 형식 은 string 이다.다음 예제:

string GetContent(int id)
{
    string sql = "SELECT [Content] FROM [A] WHERE [ID] = " + id;

    using (SqlConnection conn = new SqlConnection(ConnString))
    {
        conn.Open();
        using (SqlCommand comm = new SqlCommand(sql,conn))
        {
            string xml = (string)comm.ExecuteScalar();
            return xml;
        }
    }
}
주의해 야 할 것 은 데 이 터 를 삽입 할 때 Xml 필드 의 매개 변수 값 형식 은 string 이 될 수 없고 string 으로 인 코딩 오류 이상 을 직접 보고 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기