[英]Adding column-name dynamically in alter table
我正在開發一個Web應用程序,需要在其中使用ALTER表。 這是我的代碼:
ALTER TABLE [tablename] ADD [column-name] [Type] DEFAULT [default-value] NULL/NOT NULL
現在我想通過文本框動態更改[column-name]。 我怎樣才能做到這一點? 另外我在AddWithValue中使用@name,但它不起作用! 有誰能夠幫助我? 謝謝
這是我的整個代碼:
SqlConnection sqlconn4 = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString);
SqlCommand sqlcomm4 = new SqlCommand("ALTER TABLE aspnet_Membership ADD @column int DEFAULT 0 NOT NULL", sqlconn4);
sqlcomm4.Parameters.AddWithValue("@column", TextBox1.Text);
sqlconn4.Open();
sqlcomm4.ExecuteNonQuery();
sqlconn4.Close();
只有動態SQL查詢才有可能:
Declare @SQL VarChar(1000)
SELECT @SQL = 'ALTER TABLE my_table ADD ' + @column + ' INT'
Exec (@SQL)
使用sp_rename過程,您可以更改列名稱。
sp_RENAME 'Table_First.Name', 'NameChange' , 'COLUMN'
http://blog.sqlauthority.com/2008/08/26/sql-server-how-to-rename-a-column-name-or-table-name/
public void AddNewColumn(string tableName, string columName, string dataType)
{
string commandText = String.Format("ALTER TABLE {0} ADD {1} {2} ", tableName,columName,dataType);
using (var sqlConnection = new SqlConnection("===="))
{
var cmd = sqlConnection.CreateCommand();
cmd.CommandText = commandText;
sqlConnection.Open();
cmd.ExecuteNonQuery();
}
}
嘗試下面的事情..
dataTable.Columns [“column-name”]。ColumnName =“updated column-name”;
嗯,也許發布你的代碼樣本會有所幫助。 例如,您的column-name變量是靜態變量嗎? 如果變量未聲明為static,則每次調用Alter表方法並使用textbox textChanged事件對其進行更改時,將使用其默認值聲明該變量。
另一方面,如果您當前的問題是試圖讓動態部分工作,您是否使用文本框的textChanged事件來更改column-name變量?
將再次獲得更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.