我正在开发一个Web应用程序,需要在其中使用ALTER Table。 这是我的代码:
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();
答案 0 :(得分:1)
只有动态SQL查询才有可能:
Declare @SQL VarChar(1000)
SELECT @SQL = 'ALTER TABLE my_table ADD ' + @column + ' INT'
Exec (@SQL)
答案 1 :(得分:1)
使用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();
}
}
答案 2 :(得分:0)
尝试下面的事情..
dataTable.Columns [“column-name”]。ColumnName =“updated column-name”;
答案 3 :(得分:0)
另一方面,如果你当前的问题试图让动态部分工作,你是否使用文本框的textChanged事件来改变列名变量?
再一次,我们将非常感谢您提供更多信息。