C# 如何编写自动生成ID的查询
当我将下拉列表参数作为数据输入时出错,我无法将参数数据添加到发票表中,小计、税和合计的参数数据都有自己的值,但它仅适用于手动输入数据 下拉列表参数:C# 如何编写自动生成ID的查询,c#,sql,auto-increment,C#,Sql,Auto Increment,当我将下拉列表参数作为数据输入时出错,我无法将参数数据添加到发票表中,小计、税和合计的参数数据都有自己的值,但它仅适用于手动输入数据 下拉列表参数: using (var cmd = con.CreateCommand()) { cmd.CommandText = @"insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total); select SCOPE_IDENTITY() as invoiceID;"; cmd
using (var cmd = con.CreateCommand())
{
cmd.CommandText = @"insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total); select SCOPE_IDENTITY() as invoiceID;";
cmd.Parameters.AddWithValue("@subtotal", subtotal);
cmd.Parameters.AddWithValue("@tax", tax);
cmd.Parameters.AddWithValue("@total", total);
object OBJinvoiceID = cmd.ExecuteScalar();
}
手动输入:
using (var cmd = con.CreateCommand())
{
cmd.CommandText = @"insert into Invoice(subtotal,tax,total) values (2,2,2); select SCOPE_IDENTITY() as invoiceID;";
object OBJinvoiceID = cmd.ExecuteScalar();
}
只需从值列表中删除该字段:
insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total); select SCOPE_IDENTITY() as invoiceID;
您还可以使用OUTPUT子句通过以下方式获取值:
into Invoice(subtotal,tax,total) OUTPUT invoiceID values (@subtotal,@tax,@total);
如果您确实想手动设置
标识
-列,您可以使用设置标识_INSERT
,如前所述只需从值列表中删除该字段:
insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total); select SCOPE_IDENTITY() as invoiceID;
您还可以使用OUTPUT子句通过以下方式获取值:
into Invoice(subtotal,tax,total) OUTPUT invoiceID values (@subtotal,@tax,@total);
如果您确实想手动设置
标识
-列,您可以使用设置标识_INSERT
,如前所述只需从值列表中删除该字段:
insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total); select SCOPE_IDENTITY() as invoiceID;
您还可以使用OUTPUT子句通过以下方式获取值:
into Invoice(subtotal,tax,total) OUTPUT invoiceID values (@subtotal,@tax,@total);
如果您确实想手动设置
标识
-列,您可以使用设置标识_INSERT
,如前所述只需从值列表中删除该字段:
insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total); select SCOPE_IDENTITY() as invoiceID;
您还可以使用OUTPUT子句通过以下方式获取值:
into Invoice(subtotal,tax,total) OUTPUT invoiceID values (@subtotal,@tax,@total);
如果您确实想要手动设置
标识
-列,您可以使用设置标识_INSERT
,如上所述不设置发票ID
insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total);
不要设置invoiceID
insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total);
不要设置invoiceID
insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total);
不要设置invoiceID
insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total);
如果在数据库中它是递增的,则不需要在代码中再次修改它。只需从语句中删除invoiceID即可如果数据库中的invoiceID是递增的,则无需在代码中再次修改它。只需从语句中删除invoiceID即可如果数据库中的invoiceID是递增的,则无需在代码中再次修改它。只需从语句中删除invoiceID即可如果数据库中的invoiceID是递增的,则无需在代码中再次修改它。只需从您的语句中删除invoiceID即可我不是.NET用户,但通过谷歌搜索,我认为您不必在插入查询中提及标识字段:
using (var cmd = con.CreateCommand())
{
cmd.CommandText = @"insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total);
// the rest
}
请看一下这个简单的教程:
我不是.NET用户,但通过谷歌搜索,我认为您不必在插入查询中提及标识字段:
using (var cmd = con.CreateCommand())
{
cmd.CommandText = @"insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total);
// the rest
}
请看一下这个简单的教程:
我不是.NET用户,但通过谷歌搜索,我认为您不必在插入查询中提及标识字段:
using (var cmd = con.CreateCommand())
{
cmd.CommandText = @"insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total);
// the rest
}
请看一下这个简单的教程:
我不是.NET用户,但通过谷歌搜索,我认为您不必在插入查询中提及标识字段:
using (var cmd = con.CreateCommand())
{
cmd.CommandText = @"insert into Invoice(subtotal,tax,total) values (@subtotal,@tax,@total);
// the rest
}
请看一下这个简单的教程:
MySQL或Microsoft SQL?如果设置了标识列,则不能指定值。如果在插入中省略它,它就会起作用。我是否在这里遗漏了什么,或者您是否插入到与您正在创建的表不同的表中?MySQL或Microsoft SQL?如果设置了标识列,则无法指定值。如果在插入中省略它,它就会起作用。我是否在这里遗漏了什么,或者您是否插入到与您正在创建的表不同的表中?MySQL或Microsoft SQL?如果设置了标识列,则无法指定值。如果在插入中省略它,它就会起作用。我是否在这里遗漏了什么,或者您是否插入到与您正在创建的表不同的表中?MySQL或Microsoft SQL?如果设置了标识列,则无法指定值。从insert中省略它,它将起作用。我是否遗漏了某些内容,或者您是否插入到与您正在创建的表不同的表中?是的,我以前尝试过此操作,但我收到一个错误,错误是“无法将值NULL插入到表的'invoiceID'列中;列不允许NULL。insert失败。”错误发生在第行“object OBJinvoiceID=cmd.ExecuteScalar();“表名为
Invoice
或Order1
?有区别吗?当您的表将列invoiceID
作为标识列时,无法插入该列,因此必须将其忽略。请检查表配置和标识插入设置。有两个表,一个是发票,另一个是Order1。它适用于Order1,因为我是手动输入数据的,但是当我将其设置为自动递增时出现错误,这个表的区别是Order1表中的数据是手动输入的,而Invoice中的数据是我从下拉列表中获取的参数,因为我获取了参数“cmd.parameters.AddWithValue”(@subtotal),subtotal);“在发票表中,所以我得到了错误?如何解决这个问题?是的,我以前尝试过这个,但是我得到一个错误,说”不能将NULL值插入到表的'invoiceID'列中;列不允许空值。插入失败。“错误发生在第行”object OBJinvoiceID=cmd.ExecuteScalar();“表名为Invoice
或Order1
?有区别吗?当您的表将列invoiceID
作为标识列时,无法插入该列,因此必须将其忽略。请检查表配置和标识插入设置。有两个表,一个是发票,另一个是Order1。它适用于Order1,因为我是手动输入数据的,但是当我将其设置为自动递增时出现错误,这个表的区别是Order1表中的数据是手动输入的,而Invoice中的数据是我从下拉列表中获取的参数,因为我获取了参数“cmd.parameters.AddWithValue”(@subtotal),subtotal);“在发票表中,所以我得到了错误?如何解决这个问题?是的,我以前尝试过这个,但是我得到一个错误,说”不能将NULL值插入到表的'invoiceID'列中;列不允许空值。插入失败。“错误发生在第行”object OBJinvoiceID=cmd.ExecuteScalar();“该表是否命名为Invoice
或Order1
?是否有差异?当您的表将invoiceID
列作为标识列时,它不能被删除。”