- - PR -
DataGridの値をXMLデータとして、DBへ保存したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-06-11 15:09
ASP.NET2003のC#で開発を初めて、1ヶ月ぐらいの者です。
DataGridの値をXMLデータとして、DB(SQL Server2005)の テーブルにあるXMLデータ型の項目に保存がしたいです。 string型にXMLの形式で値を代入して、保存すればいいのかと思い 以下のようにコーティングをしました。 ----------------------------------------------------------------------------- string aaa; strAAA = "<?xml version=" + @"""1.0""" + " encoding=" + @"""utf-8""" + "?>"; strAAA += "<aaa>"; foreach(DataGridItem GridItem in DataGrid1.Items) { strAAA += "<bbb>"; strAAA += "<xxx>" + GridItem.Cells[0].Text + "</xxx>" strAAA += "<yyy>" + GridItem.Cells[1].Text + "</yyy>" strAAA += "</bbb>"; } strAAA += "</aaa>"; string strSql1 = "INSERT INTO Table1(XMLDATA) VALUES(@CXMLData)"; string sConnectInfoString = "Data Source=XXXX;" + "Integreated Security=False;" + "Initial Catalog=YYYY;" + "User Id=ppp;Password=qqq;"; SqlConnection cConnectInfo = new SqlConnection(sConnectInfoString); SqlCommand cCommand = new SqlCommand(strSql1, cConnectInfo); cCommand.Parameter.Add( new SqlParameter("@CXMLData",strAAA)); DBオープン SqlTransaction sqlTran = cConnectIndo.BeginTransaction(); cCommand.Transaction = sqlTran; try { cCommand.ExecuteNonQuery(); sqlTran.Commint(); } catch( SqlException ex ) { } DBクローズ ----------------------------------------------------------------------------- というような感じで、作成したのですが、 ”XMLの解析: エンコードを切り替えられません。” というエラーが出てしまいます。 strAAAに最初のおまじない<?xml・・・>の代入方法が 間違っているとはおもうのですが、 どうやっていれればいいのか、わかりません。 もし、string以外にも方法があれば、 教えていただけないでしょうか? よろしくお願いします。 |
|
投稿日時: 2007-06-11 15:19
連続投稿ですが
コーティング部分に記述のみの間違いがありました。 string aaa → string strAAA です。 かといって、エラーが解消されたわけでもありません。 さらに、追加で質問を・・・ タグの間に改行(エスケープシーケンス)をいれたいのです。 よろしくお願いします。 |
|
投稿日時: 2007-06-12 08:10
文字列で+演算子はコストが高いので、使わないほうがいいです。メモリが一時的に二重に取られるんですよ。
DataGrid.DataSource には、なにを指定していますか?それを XML シリアライズすれば、自分で XML を書く必要はありません。書くにしても、System.XML 名前空間のクラスを使いましょう。 _________________ |
|
投稿日時: 2007-06-15 17:02
Jittaさん、ありがとうございます。
ネットが見れない環境にいきなり出張に なってしまい、返答が遅れて申し訳ございません。 DataGrid.DataSourceにはDataSetを指定してました。 それをXmlSerializerに変更して、作り直してみます。 XMLのクラスやメンバ等、自分が実施したい事に どれを使用していいかよくわからずに、 強引にstringで実行したのが 余計裏目に出てしまったので、 XMLの使用方法を勉強したほうが 何日も悩まずできたのかもしれません。 今から、XMLの使用方法で悩んでみます。 |
1