C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

データベースに反映する方法


(過去ログ 2 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■2339 / inTopicNo.1)  データベースに反映する方法
  
□投稿者/ 津田子 二等兵(19回)-(2006/01/23(Mon) 12:04:33)

分類:[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です。
ご教示お願いします。

0
引用返信 編集キー/
■2339 / inTopicNo.2)  データベースに反映する方法
□投稿者/ 津田子 二等兵(19回)-(2006/01/23(Mon) 12:04:33)

分類:[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です。
ご教示お願いします。

0
引用返信 編集キー/
■2340 / inTopicNo.3)  Re[1]: データベースに反映する方法
□投稿者/ 中博俊 大将(287回)-(2006/01/23(Mon) 14:46:14)
中博俊 さんの Web サイト

分類:[C#] 

カラムマッピングがないからじゃないかな?


0
引用返信 編集キー/
■2340 / inTopicNo.4)  Re[1]: データベースに反映する方法
□投稿者/ 中博俊 大将(287回)-(2006/01/23(Mon) 14:46:14)
中博俊 さんの Web サイト

分類:[C#] 

カラムマッピングがないからじゃないかな?


0
引用返信 編集キー/
■2344 / inTopicNo.5)  Re[2]: データベースに反映する方法
□投稿者/ 津田子 一等兵(20回)-(2006/01/23(Mon) 17:30:11)

分類:[C#] 

2006/01/23(Mon) 17:46:32 編集(投稿者)

中さん、早速のお返事ありがとうございます。

"カラムマッピング(初めて知った言葉です)"を自分なりに調べてプログラムをいじりました。

データセットにデータベースの内容を吸いこむ前に以下のコードを追記し、
/*************以下コード*****************/
//データマッピング...のつもりです
DataTable dataTable = new DataTable();
dataTable.TableName = "tableName";
DataColumn col;
col = dataTable.Columns.Add("CustId", typeof(int));
col.AllowDBNull = false;
col = dataTable.Columns.Add("CustName",typeof(string));
col.AllowDBNull = false;
dataSet.Tables.Add(dataTable);

//データベース→データセット
//(ここは追記ではなく編集でした)
SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlStr, connStr);
dataAdapter.Fill(dataTable);
ShowDataSet(dataSet);

/*************以上コード*****************/

さらにINSERTのSQL文について、テーブル名をソースデータのテーブル名に変更したら解決しました。
中さん、本当にありがとうございました。

解決済み
引用返信 編集キー/
■2344 / inTopicNo.6)  Re[2]: データベースに反映する方法
□投稿者/ 津田子 一等兵(20回)-(2006/01/23(Mon) 17:30:11)

分類:[C#] 

2006/01/23(Mon) 17:46:32 編集(投稿者)

中さん、早速のお返事ありがとうございます。

"カラムマッピング(初めて知った言葉です)"を自分なりに調べてプログラムをいじりました。

データセットにデータベースの内容を吸いこむ前に以下のコードを追記し、
/*************以下コード*****************/
//データマッピング...のつもりです
DataTable dataTable = new DataTable();
dataTable.TableName = "tableName";
DataColumn col;
col = dataTable.Columns.Add("CustId", typeof(int));
col.AllowDBNull = false;
col = dataTable.Columns.Add("CustName",typeof(string));
col.AllowDBNull = false;
dataSet.Tables.Add(dataTable);

//データベース→データセット
//(ここは追記ではなく編集でした)
SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlStr, connStr);
dataAdapter.Fill(dataTable);
ShowDataSet(dataSet);

/*************以上コード*****************/

さらにINSERTのSQL文について、テーブル名をソースデータのテーブル名に変更したら解決しました。
中さん、本当にありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -