0

如何使用 sql 查询更改列的标识规范?仅使用 c# 编码。请帮忙。 在这里,我想在以下代码中创建新表时再添加一列作为 PaperId。我需要将 columns 属性分配为标识规范 yes 和标识增量 1。

if (rbtnEng.Checked == true)
{
    con.Open();
    char[] arr = new char[] { 'n', 'g', 'l', 'i', 's', 'h' };
    string str = "CREATE TABLE " + Label1.Text.Trim() + txtpaperset.Text.Trim() 
    + rbtnEng.Text.TrimEnd(arr) + "(" + "quesNo int NOT NULL PRIMARY KEY, " 
    + "question varchar(1000) NOT NULL," + "ansA varchar(500) NOT NULL, " 
    + "ansB varchar(500) NOT NULL, " + "ansC varchar(500) NOT NULL, " 
    + "ansD varchar(500) NOT NULL, " + "rightAns varchar(50) NOT NULL " + ")";
    SqlCommand cmd = new SqlCommand(str, con);
    cmd.ExecuteNonQuery();
    Label2.Text = Label1.Text + txtpaperset.Text + rbtnEng.Text.TrimEnd(arr);
    lblerrormsg.Text = "PaperSet Created Sucessfully!";
    txtpaperset.ReadOnly = true;
    btnpaper.Enabled = false;
    rbtnEng.Enabled = false;
    rbtnMar.Enabled = false;
    UpdatePanel2.Visible = true;
    txtQuestNo.Text = Convert.ToString(1);
    con.Close();
}

else if....
4

2 回答 2

2

首先,这很糟糕。不要像这样添加这么多字符串;使用string.Format().

string str = string.Format("CREATE TABLE {0}{1}{2} (" 
+ "quesNo int NOT NULL PRIMARY KEY, question varchar(1000) NOT NULL, " 
+ "ansA varchar(500) NOT NULL, ansB varchar(500) NOT NULL, " 
+ "ansC varchar(500) NOT NULL, ansD varchar(500) NOT NULL, " + 
+ "rightAns varchar(50) NOT NULL )",
Label1.Text.Trim(),
txtpaperset.Text.Trim(),
rbtnEng.Text.TrimEnd(arr));

但那只是我的个人意见。

以下是创建标识列的方法

PaperId int identity(1,1)

只需将其添加到您的str字符串中。

于 2012-08-03T21:24:07.293 回答
1

如果您只需要在创建表脚本中添加一个标识列,那么这里是一个示例:

create table Data
(
Id int identity(1,1) NOT NULL
)
于 2012-08-03T21:23:07.073 回答