【发布时间】:2015-09-04 08:54:06
【问题描述】:
我正在尝试创建一个命令,该命令应该根据在文本框中输入的名称创建一个表。没有错误,工作正常,查询看起来不错,但实际上并没有创建表。这是为什么呢?
private void button1_Click(object sender, EventArgs e)
{
int count = 0;
var connString = (@"Data Source=" + System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)) + @"\Grupe.sdf");
using (var conn = new SqlCeConnection(connString))
{
try
{
conn.Open();
var query = "CREATE TABLE " + textBox1.Text.Trim() + "(" + "Id int NOT NULL IDENTITY (1,1) PRIMARY KEY" ;
MessageBox.Show(query);
foreach (Control c in this.Controls)
{
if (c.Name.Contains("temp") && c is TextBox)
{
if (!String.IsNullOrEmpty(c.Text))
{
query += "," + c.Text.Trim() + " nvarchar(MAX) NULL";
count++;
}
}
}
query += ")";
var command = new SqlCeCommand(query, conn);
command.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
【问题讨论】:
-
是否有一个按钮实际连接到处理程序?处理程序实际上被调用了吗? 断点的好地方。
-
连接到处理程序是什么意思?
-
如果您在不中断调试会话的情况下单击按钮两次,您是否会收到一条错误消息,说明该表存在?
-
如果我按两次它表示该表已经存在。奇怪..但它仍然没有显示在服务器资源管理器中
-
那么建表所在的数据库不是你想的那个
标签: c# sql sql-server-ce create-table