C# c语言中sqlserver的自动增量
我有一个以编程方式创建的数据库: 以下是我用来创建数据库的代码:C# c语言中sqlserver的自动增量,c#,sql-server,C#,Sql Server,我有一个以编程方式创建的数据库: 以下是我用来创建数据库的代码: using (SqlConnection conn = new SqlConnection(@"Data source = **** ; Database=******* ; User Id=***** ; Password=*******")) { int i = 0; i++; conn.Open(); string sqlQuery = @"INSERT INTO UXFaturas(ID
using (SqlConnection conn = new SqlConnection(@"Data source = **** ; Database=******* ; User Id=***** ; Password=*******"))
{
int i = 0;
i++;
conn.Open();
string sqlQuery = @"INSERT INTO UXFaturas(IDNumFaturas, NumFaturas , Cliente, Valor, Data) VALUES (@idnumfaturas, @numfaturas, @client, @valor, @data)";
SqlCommand SQLcm = new SqlCommand();
SQLcm.Connection = conn;
SQLcm.CommandText = sqlQuery;
SQLcm.CommandType = CommandType.Text;
SQLcm.Parameters.AddWithValue("@idnumfaturas", i);
SQLcm.Parameters.AddWithValue("@numfaturas", numfatura);
SQLcm.Parameters.AddWithValue("@client", nomecli);
SQLcm.Parameters.AddWithValue("@valor", valorStr);
//SQLcm.Parameters.AddWithValue("@estado", cont); no variable yet
SQLcm.Parameters.AddWithValue("@data", data);
SQLcm.ExecuteNonQuery();
MessageBox.Show("inseriu");
conn.Close();
MessageBox.Show("gravou");
}
我需要将IDNumFaturas设置为自动增量。我尝试的方式不起作用。我也尝试将它作为主键,但如果我这样做,我就无法向表中添加任何内容。有什么建议吗?我正在使用C创建表时应该使用
INT NOT NULL IDENTITY(1,1),
在主键字段上
或者进入表生成器,将Identity设置为Yes,并将seed设置为1,increment设置为1
您需要做的是理解SQL server中的标识是什么
如果您想在此阶段添加标识列,它将是一个表重建,这意味着您必须关闭SQL server,以防止重新构建表。这应该在选项菜单中,并且当您尝试重建表时弹出的消息将确切地告诉您要关闭哪个选项。我建议你做完后再打开它
此外,您还需要删除主键字段的插入,因为创建标识将关闭对该列的插入您的表本应使用该字段创建
INT NOT NULL IDENTITY(1,1),
在主键字段上
或者进入表生成器,将Identity设置为Yes,并将seed设置为1,increment设置为1
您需要做的是理解SQL server中的标识是什么
如果您想在此阶段添加标识列,它将是一个表重建,这意味着您必须关闭SQL server,以防止重新构建表。这应该在选项菜单中,并且当您尝试重建表时弹出的消息将确切地告诉您要关闭哪个选项。我建议你做完后再打开它
此外,您还需要删除主键字段的插入,因为创建标识将关闭对该列的插入您应该使用以下语法创建表: 创建表UXFaturas IDNumFaturas int IDENTITY 1,1主键 或 从当前表UXFaturas和 增加一个值 例如,如果它的8是IDNumFaturas的最后一个最大值,则表示您应该获得该值,并将一个值增加为9 从UXFaturas表获取IDNumFaturas最大值的示例查询 SqlCommand cmd=新建SqlCommand从中选择MAX IDNumFaturas+1 康涅狄格州UXFaturas;int newID=intcmd.ExecuteScalar; SQLcm.Parameters。AddWithValue@idnumfaturas,newID
您应该使用以下语法创建表: 创建表UXFaturas IDNumFaturas int IDENTITY 1,1主键 或 从当前表UXFaturas和 增加一个值 例如,如果它的8是IDNumFaturas的最后一个最大值,则表示您应该获得该值,并将一个值增加为9 从UXFaturas表获取IDNumFaturas最大值的示例查询 SqlCommand cmd=新建SqlCommand从中选择MAX IDNumFaturas+1 康涅狄格州UXFaturas;int newID=intcmd.ExecuteScalar; SQLcm.Parameters。AddWithValue@idnumfaturas,newID
在sql中将字段类型设置为自动递增。sql Server具有“Identity”属性,该属性会自动将值递增1。如果它适合您的场景,您可以尝试这样做。在sql表设计器中,属性设置为true。此外,如果这是测试数据,请删除现有行以避免重复,并且在management studio中将IDENTITY属性设置为Yes后,请记住不应引用该字段并在代码中传递该字段的值,请尝试在C或SQL中将int i声明为全局,将列属性设置为IsIdentity为True。在sql中将字段类型设置为自动递增。sql Server具有“Identity”属性,该属性会自动将值递增1。如果它适合您的场景,您可以尝试这样做。在sql表设计器中,属性设置为true。此外,如果这是测试数据,请删除现有行以避免重复,并且在management studio中将IDENTITY属性设置为Yes后,请记住不应引用该字段并在代码中传递该字段的值,请尝试在C或SQL中将int i声明为全局,将列属性设置为IsIdentity为True。我不能放弃你的答案,但我选择了正确的答案是的,但我没有足够的声誉给你一个放弃好的,@Josue Figueiredo谢谢如果可以,你可以放弃我的其他问题,我会放弃你的答案检查我的个人资料,我想我总共有4个问题我不能给出你的答案,但我选择了正确的答案是的,但我没有足够的声誉给你一个答案好吧,@Josue Figueiredo谢谢如果你可以,你可以提出我的其他问题,我会提出你的答案检查我的个人资料,我想我总共有4个问题