如何通过代码更改数据表中列的数据类型?

时间:2014-03-24 06:38:14

标签: c#

我想将名为“FaxNo”的列名的数据类型从int更改为numeric .. 我试过这个代码..

 private void btnOK_Click(object sender, EventArgs e)
    {
        if (con.State == ConnectionState.Open)
        {
            con.Close();
        }
        string s = "ALTER TABLE Add_Information ALTER COLUMN FaxNo numeric(18,0)";

            con.Open();
            SqlCommand cmd = new SqlCommand(s, con);
            if (cmd.ExecuteNonQuery() >= 1)
            {
                MessageBox.Show("Successfully updaed");
            }
            else
            {
                MessageBox.Show("Not done");
            }
            con.Close();     
    }

我的表名是Add_Information 它显示的消息为Not done。 帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

我猜你用数据填充后不能改变DataColumn的DataType。它不是只读属性,但如果您在已有数据后尝试更改它,则会在运行时收到异常。

根据下面链接的msdn文件

http://msdn.microsoft.com/en-us/library/system.data.datacolumn.datatype.aspx

在列开始存储数据后更改此属性时会生成异常。

因此,您必须在开始时确保正确的列类型(如果可能),或者专门为从原始DataTable导入和复制数据创建新的DataTable。