C#获取access 2010自动编号

C#获取access 2010自动编号,c#,oledb,ms-access-2010,autonumber,C#,Oledb,Ms Access 2010,Autonumber,您好,我正在提交要访问的表单,但希望在提交后在文本框中显示访问分配的自动编号。下面是我有,任何建议都将是伟大的 string cmdstr = "Insert into TaskPerformed(TaskType,OtherType,Analyst,DateCompleted)Values(@b,@c,@d,@e)"; string query2 = "Select @@IDENTITY"; OleDbConnection con1 = new OleDbConnection(constr

您好,我正在提交要访问的表单,但希望在提交后在文本框中显示访问分配的自动编号。下面是我有,任何建议都将是伟大的

string cmdstr = "Insert into  TaskPerformed(TaskType,OtherType,Analyst,DateCompleted)Values(@b,@c,@d,@e)";
string query2 = "Select @@IDENTITY";

OleDbConnection con1 = new OleDbConnection(constr);
OleDbCommand com = new OleDbCommand(cmdstr, con1);
OleDbCommand cmdNewID = new OleDbCommand("SELECT @@IDENTITY", con1);//

con1.Open();

cmd.CommandText = query2;
com.ExecuteNonQuery();
con1.Close();

label16.Text = cmdNewID.ToString();

看起来您遇到的问题是因为您没有执行第二个命令。。。在使用之前,您正在关闭连接

using(OleDbCommand cmdNewID = new OleDbCommand("SELECT @@IDENTITY", con1))
{
    con1.Open();

    cmd.CommandText = query2;
    com.ExecuteNonQuery();

    label16.Text = cmdNewID.ExecuteScalar();
}

看起来您遇到的问题是因为您没有执行第二个命令。。。在使用之前,您正在关闭连接

using(OleDbCommand cmdNewID = new OleDbCommand("SELECT @@IDENTITY", con1))
{
    con1.Open();

    cmd.CommandText = query2;
    com.ExecuteNonQuery();

    label16.Text = cmdNewID.ExecuteScalar();
}

看起来您遇到的问题是因为您没有执行第二个命令。。。在使用之前,您正在关闭连接

using(OleDbCommand cmdNewID = new OleDbCommand("SELECT @@IDENTITY", con1))
{
    con1.Open();

    cmd.CommandText = query2;
    com.ExecuteNonQuery();

    label16.Text = cmdNewID.ExecuteScalar();
}

看起来您遇到的问题是因为您没有执行第二个命令。。。在使用之前,您正在关闭连接

using(OleDbCommand cmdNewID = new OleDbCommand("SELECT @@IDENTITY", con1))
{
    con1.Open();

    cmd.CommandText = query2;
    com.ExecuteNonQuery();

    label16.Text = cmdNewID.ExecuteScalar();
}

您没有执行cmdNewId-这可能也有帮助,您的参数占位符应该只是问号(
),并且您似乎没有创建任何
。参数或为其赋值。@GordThompson您可以随意调用参数IMHO,只是不使用名称,而是使用顺序。我更喜欢使用“真名”而不是“实名”,这样更容易看到我要去哪里。@Remou True,但说“必须使用问号(?)占位符”。因此,尽管
@names
确实有效,但我认为应该使用
(并在
.Add
.AddWithValue
语句旁边添加注释,以指示值是什么)为了避免错误地认为这些名称具有任何真正的功能意义。@GordThompson这是一个合理的参数,但很明显帮助页面是错误的,
必须
表明其他方法都不起作用,但事实并非如此。您没有执行cmdNewId-这可能也有帮助,您的参数占位符应该是问号(
),并且您似乎没有创建任何
。参数
,也没有给它们赋值。@GordThompson您可以随意调用参数,只是不使用名称,只使用顺序而已。我更喜欢使用“真名”而不是“实名”,这样更容易看到我要去哪里。@Remou True,但说“必须使用问号(?)占位符”。因此,尽管
@names
确实有效,但我认为应该使用
(并在
.Add
.AddWithValue
语句旁边添加注释,以指示值是什么)为了避免错误地认为这些名称具有任何真正的功能意义。@GordThompson这是一个合理的参数,但很明显帮助页面是错误的,
必须
表明其他方法都不起作用,但事实并非如此。您没有执行cmdNewId-这可能也有帮助,您的参数占位符应该是问号(
),并且您似乎没有创建任何
。参数
,也没有给它们赋值。@GordThompson您可以随意调用参数,只是不使用名称,只使用顺序而已。我更喜欢使用“真名”而不是“实名”,这样更容易看到我要去哪里。@Remou True,但说“必须使用问号(?)占位符”。因此,尽管
@names
确实有效,但我认为应该使用
(并在
.Add
.AddWithValue
语句旁边添加注释,以指示值是什么)为了避免错误地认为这些名称具有任何真正的功能意义。@GordThompson这是一个合理的参数,但很明显帮助页面是错误的,
必须
表明其他方法都不起作用,但事实并非如此。您没有执行cmdNewId-这可能也有帮助,您的参数占位符应该是问号(
),并且您似乎没有创建任何
。参数
,也没有给它们赋值。@GordThompson您可以随意调用参数,只是不使用名称,只使用顺序而已。我更喜欢使用“真名”而不是“实名”,这样更容易看到我要去哪里。@Remou True,但说“必须使用问号(?)占位符”。因此,尽管
@names
确实有效,但我认为应该使用
(并在
.Add
.AddWithValue
语句旁边添加注释,以指示值是什么)为了避免错误地认为名称具有真正的功能意义。@GordThompson这是一个合理的论点,但很明显帮助页面是错误的,
必须
表明其他任何东西都不起作用,但事实并非如此。