我正在使用SQLConnector,SQLCommandBuilder和DataSet进行简单的连接,填充和更新操作。
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "server=scratch;database=scratch;user=scratch;password=scratch";
theConnection = new SqlConnection(connectionString);
theDataAdapter = new SqlDataAdapter("SELECT * FROM scratch", theConnection);
theCommandBuilder = new SqlCommandBuilder(theDataAdapter);
theDataSet = new DataSet();
theDataAdapter.Fill(theDataSet);
dataGridView1.DataSource = theDataSet.Tables[0];
}
private void button2_Click(object sender, EventArgs e)
{
theDataAdapter.Update(theDataSet.Tables[0]);
}
我想记录表的名称,但数据集中表的TableName始终为“Table”。命令构建器使用表名来创建Update,Insert和Delete命令,但是我找不到返回它的SQLCommandBulider或DBCommandBuilder的方法或属性。
为了保持稳定,我宁愿在第二次事件中保留更改。所以我不想在设置DataAdatpter或DataSet时需要任何额外的东西(比如显式设置DataTables的TableNames)。解析GetUpdateCommand()的输出也听起来很糟糕。
在更新时获取受影响的数据库表名称的简洁方法是什么?
...或者我只是对我不想做的事情过于挑剔?