|
分類:[C#]
分類:[C#]
いつもお世話になっております。 ADO.NETのInsertCommandについて質問させてください。 DataSetに追加した行をCommandBuilderを使わずにデータベースに反映させたいのですが、うまくいきません。
/*************以下コード*******************/
public static void Main() { string connStr = "Server = (local); Trusted_Connection = yes; database=KADAIDB"; string sqlStr = "SELECT * FROM CustTest"; SqlConnection conn = new SqlConnection(connStr); DataSet dataSet = new DataSet();
//データベース→データセット SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlStr, connStr); dataAdapter.Fill(dataSet); dataSet.Tables.Add("tableName");
//新しい行をデータセットに挿入 DataRow newRow = dataSet.Tables[0].NewRow(); newRow["CustId"] = 123; newRow["CustName"] = "Betty"; dataSet.Tables[0].Rows.Add(newRow);
//InsertCommandを作成 SqlCommand insertCommand =new SqlCommand ("INSERT INTO tableName(CustId,CustName) VALUES (@pCustID, @pCustName)",conn); SqlParameter p1 = new SqlParameter(); p1.ParameterName = "@pCustId"; p1.SourceColumn = "CustId"; insertCommand.Parameters.Add(p1); SqlParameter p2 = new SqlParameter(); p2.ParameterName = "@pCustName"; p2.SourceColumn = "CustName"; insertCommand.Parameters.Add(p2);
dataAdapter.InsertCommand = insertCommand;
//追加した行をデータベースに反映させているつもりなのですが... dataAdapter.Update(dataSet, "tableName"); }
/************以上コード******************************/ 開発環境はVisual Studio .NET 2003, データベースはSQLServer2000です。 ご教示お願いします。
|