SQL命令在C#Windows窗体应用程序中不起作用
本文关键字:应用程序 不起作用 窗体 C#Windows 命令 SQL | 更新日期: 2023-09-27 18:28:04
我正试图通过我的Windows窗体应用程序(使用C#构建)在数据库的表中添加一个新列。
我创建了一个方法CreateFieldNameInTableData(字符串FieldName,字符串TableName),它传递变量"FieldName"的名称,这是要添加到表中的列的名称,"TableName",可以由用户指定。
这个试图将列添加到表中的方法的代码如下:
private void CreateFieldNameInTableData(string FieldName, string AssetTypeCode)
{
SqlConnection conn = new SqlConnection(SQLConnectionString);
SqlCommand comm = null;
try
{
try
{
comm = conn.CreateCommand();
comm.CommandText = "ALTER TABLE [AS_" + TableName + "_DATA] ADD " + FieldName + " VARCHAR(30)";
comm.CommandType = CommandType.Text;
comm.CommandTimeout = 30; //30 seconds
conn.Open();
}
catch (SqlException err)
{
MessageBox.Show("SqlException Error : " + err.Message.ToString());
}
}
catch (Exception ex)
{
MessageBox.Show("Exception Error : " + ex.Message.ToString());
}
finally
{
conn.Close();
}
}
当我在Server Management Studio中使用相同的SQL脚本时,它成功地在表AS_TableName_DATA中创建了列,但当我尝试使用C#执行同样的操作时,它没有抛出任何错误,但经过检查,该表没有要创建的新列。
任何帮助。。。出了什么问题?
附言:我还检查了SQLConnectionString,它也连接到了正确的数据库。
正如@TarasB所建议的,comm.ExecuteNonQuery()丢失,SQL查询未由c#SQLClient执行。回顾这一错误,感觉就像是"小学生的错误"。
最终工作代码如下:
try
{
comm = conn.CreateCommand();
comm.CommandText = "ALTER TABLE [AS_" + TableName + "_DATA] ADD [" + FieldName + "] VARCHAR(30)";
comm.CommandType = CommandType.Text;
comm.CommandTimeout = 120; //120 seconds
conn.Open();
comm.ExecuteNonQuery();
}
catch (SqlException err)
{
MessageBox.Show("SqlException Error : " + err.Message.ToString());
}