sql >> データベース >  >> RDS >> Sqlserver

.NET:XML ドキュメントを SQL Server に挿入する方法

    SqlParameter を使用する必要があります。そのようにすることをお勧めします:

    command.Parameters.Add( new SqlParameter("@xml", SqlDbType.Xml) {Value =new SqlXml(new XmlTextReader(xmlToSave.InnerXml , XmlNodeType.Document, null)) })  

    SQL は次のようになります:

    String sql ="INSERT INTO "+tableName+" ("+columnName+") VALUES (@xml)";  

    また、最初の子は常に xml ノードであるため、エンコーディングを次のステートメントに置き換えることができます。

    xmlToSave.FirstChild.InnerText ="version=\"1.0\" encoding=\"UTF-16\"";  

    全体として、次のようになります:

    void SaveXmlToDatabase(DbConnection connection, XmlDocument xmlToSave, String tableName, String columnName);{ String sql ="INSERT INTO "+tableName+" ("+columnName+") VALUES (@xml)"; using (DbCommand command =connection.CreateCommand()) { xmlToSave.FirstChild.InnerText ="version=\"1.0\" encoding=\"UTF-16\""; command.CommandText =sql; command.Parameters.Add( new SqlParameter("@xml", SqlDbType.Xml) {Value =new SqlXml(new XmlTextReader(xmlToSave.InnerXml , XmlNodeType.Document, null)) }); DbTransaction トランス =connection.BeginTransaction(); { command.ExecuteNonQuery(); を試してください。 trans.Commit(); } catch (例外) { trans.Rollback();投げる; }}}  

    1. SQL-トリガー更新エラー

    2. このレコード/ファンアウトロジックは、MySQLのクエリプランナーの統計なしの場合にどのように導き出されましたか?

    3. MYSQL列の作成におけるNULLとデフォルトのNULLとNULLのデフォルトのNULL?

    4. MySQL ORDER BY RAND()関数はいつ注文しますか?