0

私は Web アプリケーションを開発しており、そこで ALTER テーブルを使用する必要があります。これが私のコードです:

ALTER TABLE [tablename] ADD [column-name] [Type] DEFAULT [default-value] NULL/NOT NULL 

[列名] をテキスト ボックスで動的に変更したいと考えています。どうやってやるの?さらに、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();
4

4 に答える 4

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();
        }
    }
于 2013-02-11T09:31:07.420 に答える
1

動的 SQL クエリでのみ可能です。

Declare @SQL VarChar(1000)

SELECT @SQL = 'ALTER TABLE my_table ADD ' + @column + ' INT'

Exec (@SQL)
于 2013-02-11T09:07:02.007 に答える
0

以下のことを試してください..

dataTable.Columns["列名"].ColumnName = "更新された列名";

于 2013-02-11T09:06:44.013 に答える
0

うーん、おそらくコードのサンプルを投稿すると役立つでしょう。たとえば、列名変数は静的変数ですか? 変数が静的であると宣言されていない場合、Alter テーブル メソッドが呼び出され、テキスト ボックスの textChanged イベントによって変数が変更されるたびに、デフォルト値で宣言されます。

一方、現在の問題が動的部分を機能させようとしている場合、テキストボックスの textChanged イベントを使用して列名変数を変更していますか?

もう一度、より多くの情報をいただければ幸いです。

于 2013-02-11T09:16:54.910 に答える