C#中在一个窗体中的文本框中输入表名称点击确定后就可以在SQl数据库中生成一张表,这怎么做?

staticinti=1;privatevoidbutton1_Click(objectsender,EventArgse){SqlConnectioncon=newSq... static int i=1;
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Server=.\\SQLEXPRESS;uid=sa;pwd=59365615;Database=Attendance Manage");
con.Open();
string create_table = "create table " + maskedTextBox1.Text + "(Anumber nchar(20) constraint PK_" + i + " primary key,employeename nchar(20),date datetime,worktime int,overtime int,absentwork int,late int,askleave int)";

SqlCommand cmd = new SqlCommand(create_table, con);
cmd.ExecuteNonQuery();
MessageBox.Show("创建成功");
i+=1;//上面设全局变量,这里循环加1,为了多次建表,主键名不重复
this.Close();
}
这个代码没多大问题就是程序第一次运行不管建多少表都没问题的,但是第二次运行这程序里面的所有代码都重新执行了一遍所以SQL表的主键名就会重复,设置全局变量也就没有用了。。这怎么搞?? 0.0
展开
 我来答
IM_FB
2011-10-09 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:67.5万
展开全部
调试一下,i+=1 这个全局变量。是否叠加。
更多追问追答
追问
这是叠加的。。但是每次运行程序都会所有程序都运行一遍,所以全局变量也没用了,主键名都会从头开始,所以就报错了
追答
我知道了。 
第一次执行多次。 都不会出错是因为,刚创建的时候 都是按照 递增的顺序来的。

然后关闭程序,重新打开的时候, 又是 从 1 2 3 4 这种顺序递增, 前面已经有了这个主键。所以就会报错。

你可以通过什么方法判断一下表中的 主键 有几个。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式