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个问题