1
我想通過我的Windows窗體應用程序(使用C#構建)在數據庫的表中添加一個新列。SQL命令在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#執行相同的操作時,它不會拋出任何錯誤,但是在檢查之後,該表沒有要創建的新列。
任何幫助......怎麼了?
P.S.我也檢查了SQLConnectionString,它也連接到正確的數據庫。
您還沒有執行你的命令。在'try'塊末尾添加'cmd.ExecuteNonQuery();' – Habib 2014-10-28 14:14:35
也在查詢中使用'QUOTENAME'請參閱:這篇文章:http://stackoverflow.com/questions/20719449/c-sharp-alter-table -and-add-a-column-programmatically -asp-net-sql-server – Habib 2014-10-28 14:15:53
@Habib你不能參數化DML – 2014-10-28 14:19:06