|
分類:[ASP.NET (C#)]
こんにちは。お世話になっております。 先ほどもご質問させて頂いてたのですが・・・
現在、 開発環境:WindowsXP 使用言語:ASP.NET、C# でデータベース(SQL-SERVER)を使ったシステムを作っております。
先ほどは、Rowsが書き忘れたことによるミスで無事ビルドは成功したのですが、 肝心のSQL文が通ってくれてなくて困っております。 どうもこの下のようなfor文でDataTable型の中身がNULLだったら「NULL」を入れるとしている処理を上手く通らずいるようで デバックしてもひとつもif文の中に入ってくれなかったので・・・。
【ソース】 //取得したデータの中身チェック(なければ、Nullを代入) for(int i=1;i<=7;i++) { if (dt.Rows[0][i] == null)← { dt.Rows[0][i] = null;← } }
query.AppendFormat("INSERT INTO {0} ", T.ListDetailTable); query.Append("(No, Vno, INo, CD, SCD, "); query.Append("TCD, PCD, LISTCD, FrindCD) "); query.AppendFormat("VALUES ({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8})", QUERYVARIABLE_NO, vDetail.Vno + 1, vDetail.INo, dt.Rows[0][1], dt.Rows[0][2], dt.Rows[0][3], dt.Rows[0][4], dt.Rows[0][5], dt.Rows[0][6]);
return query.ToString();
結果的にreturnで返されるSQL文が、
【返されるSQL文】 INSERT INTO ListDetailTable (No, Vno, INo, CD, SCD, TCD, PCD, LISTCD, FrindCD) VALUES (@Num, 2, 1, 0001, 04, , , 001, )
になってしまい、空白の部分に「NULL」が入ってない状態で返して、エラーが起こってしまいます。
【理想的なSQL文】 INSERT INTO ListDetailTable (No, Vno, INo, CD, SCD, TCD, PCD, LISTCD, FrindCD) VALUES (@Num, 2, 1, 0001, 04, NULL, NULL, 001, NULL)
なのですが、どうやって「NULL」を入れれば良いのでしょうか・・・? いろいろToStringやEqualsでのif文判断もしたのですが、上手くいかずに困っております。
度重ねで誠に申し訳ないのですが、誰かご教授お願い致します。
|