新手求指导
private void button1_Click(object sender, EventArgs e)
{
int k=1;
string o = comboBox1.Text;
string s = comboBox2.Text;
string h = comboBox3.Text;
string x = "["+o + "," + s + "," + h+"]";
string tabName = "[STUDENT].[dbo].[Sheet1$]"; //欲插入列的表名
string colName = x; //插入列的列名
string sqlStr = "alter table " + tabName + " add " + colName + " char(20) null";
//实例化sql连接
SqlConnection c = new SqlConnection("Server=(local);Integrated Security=SSPI;database=student");
c.Open();
//实例化sql命令
SqlCommand cmd = new SqlCommand(sqlStr, c);
//执行sql命令
cmd.ExecuteNonQuery();
//关闭连接
c.Close();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].Value) == true)
{
string add = "insert into " + tabName + colName+"values" + k;
SqlConnection M = new SqlConnection("Server=(local);Integrated Security=SSPI;database=student");
c.Open();
SqlCommand cad = new SqlCommand(add,M);
cmd.ExecuteNonQuery();
c.Close();
}
}
为什么会出现这个问题
各表中的列名必须唯一。在表 'STUDENT.dbo.Sheet1$' 中多次指定了列名'2011,1,5'
------解决方案--------------------
SqlConnection M = new SqlConnection("Server=(local);Integrated Security=SSPI;database=student");
c.Open();//这里应该是M.Open();
SqlCommand cad = new SqlCommand(add,M);
cmd.ExecuteNonQuery();//这里应该是cad.ExecuteNonQuery();
c.Close();//这里是M.colse();
cad不是cmd你自己看清楚啊
在最后的地方 你调用了上面的cmd而不是你的cad