【发布时间】:2011-06-28 20:58:18
【问题描述】:
我创建一个SqlDataAdapter 后将其填充到Dataset。我的问题是插入后我想获得主列的IDENTITY 值。例如给 buttonedit1 的编辑值是 Id (这是我的主要列)插入后我想在 ButtonEdit1 文本中获取标识值。
除非使用像Select @IDentity这样的SQL命令,否则我可以做到这一点
谢谢。
public void Form1_Load(object sender,EventArgs e)
{
try
{
SqlConnection con = new SqlConnection(@"ConString");
con.Open();
adap = new SqlDataAdapter("select Id,Caption from SKMenu where ID=-1",con);
adap.Fill(ds, "Table");
bs.DataSource = ds.Tables["Table"];
buttonEdit1.DataBindings.Add("Text", bs, "Id");
buttonEdit2.DataBindings.Add("Text", bs, "Caption");
bs.AddNew();
}
private void button1_Click(object sender, EventArgs e)
{
SqlCommandBuilder cv = new SqlCommandBuilder(adap);
bs.EndEdit();
adap.Update(ds.Tables["Table"]);
}
【问题讨论】:
-
一种或另一种方式,您必须调用类似
SELECT SCOPE_IDENTITY()或在您的INSERT调用中使用OUTPUT语句来获取新插入的标识值 - 有真的,别无他法。 -
您的代码也很不完整 - 有一个起始
try { ....但没有适当的结束(没有结束大括号,也没有 catch 或 finally 语句块)...... -
感谢您的回答,但如果我两次更新一行或者它没有插入它就是更新。所有时间它都会得到我的新 ID
标签: c# sql-server sqldataadapter