簡體   English   中英

在alter table中動態添加column-name

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM