我想将名为“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
。
帮我解决这个问题。
答案 0 :(得分:1)
我猜你用数据填充后不能改变DataColumn的DataType。它不是只读属性,但如果您在已有数据后尝试更改它,则会在运行时收到异常。
根据下面链接的msdn文件
http://msdn.microsoft.com/en-us/library/system.data.datacolumn.datatype.aspx:
在列开始存储数据后更改此属性时会生成异常。
因此,您必须在开始时确保正确的列类型(如果可能),或者专门为从原始DataTable导入和复制数据创建新的DataTable。