C#中错误:未处理sqlException,列名'Lab'无效

haha157373 2010-09-29 10:35:30
各位大侠,我用C#希望连数据库,然后更新数据库信息,代码如下:
namespace LinktoDatabase
{
public partial class Form2 : Form
{
DataTable dt = null;
TextBox[] txtBox;
SqlConnection con = new SqlConnection("server=.;database=DeviceMng");
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
showList();
}

private void showList()
{
listView1.View = View.Details;//视图
listView1.GridLines = true;//网格线
using (SqlDataAdapter da = new SqlDataAdapter("select * from t_Student", con))
{
//生成结果集
dt = new DataTable();
da.Fill(dt);
ColumnHeader ch;
for (int i = 0; i < dt.Columns.Count; i++)//列
{
ch = new ColumnHeader();
ch.Text = dt.Columns[i].ColumnName.ToString();
ch.Name = dt.Columns[i].ColumnName.ToString();
ch.Width = 72;//
this.listView1.Columns.Add(ch);
}
//建立结构
Method(dt);
}
}

private void tbADD_Click(object sender, EventArgs e)
{
if (dt != null)
{
DataRow row;
txtBox = new TextBox[4]; //建立数组
txtBox[0] = this.textBox1;
txtBox[1] = this.textBox2;
txtBox[2] = this.textBox3;
txtBox[3] = this.textBox4;

row = dt.NewRow();
for (int i = 0; i < dt.Columns.Count; i++)
{
row[dt.Columns[i].ToString()] = this.txtBox[i].Text.ToString();
}
dt.Rows.Add(row);
Method(dt);
}
}
private void Method(DataTable dt)
{
listView1.Items.Clear();
ListViewItem listItem = null;
for (int j = 0; j < dt.Rows.Count; j++)
{
listItem = new ListViewItem(dt.Rows[j][0].ToString());
for (int k = 1; k < dt.Columns.Count; k++)
{
listItem.SubItems.Add(dt.Rows[j][k].ToString());
}
listView1.Items.Add(listItem);
}
}

private void tbSave_Click(object sender, EventArgs e)
{
using (SqlDataAdapter da = new SqlDataAdapter())
{
SqlCommand command = new SqlCommand("INSERT INTO t_Student " +
"VALUES (@StuNo,@Name,@Tutor,@LabNo)", con);
// Add the parameters for the InsertCommand.
command.Parameters.Add("@StuNo", SqlDbType.Char, 11, "StuNo");
command.Parameters.Add("@Name", SqlDbType.Char, 10, "Name");
command.Parameters.Add("@Tutor", SqlDbType.Char, 10, "Tutor");
command.Parameters.Add("@LabNo", SqlDbType.Char, 5, "LabNo");

da.InsertCommand = command;
da.Update(dt);
MessageBox.Show("保存成功");
}
}

}
调试的时候是没有错误的,但是执行到tbSave_Click时,会在program.cs中的Application.Run(new Form2());处显示:C#中错误:未处理sqlException,列名'Lab'无效

我找不出错误 请各位帮忙了,小女子不胜感激~~~~
...全文
304 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
空怀 2010-09-29
  • 打赏
  • 举报
回复
INSERT INTO t_Student VALUES (@StuNo,@Name,@Tutor,@LabNo)
在Student 后把你要插入数据的列写出来
q107770540 2010-09-29
  • 打赏
  • 举报
回复
SqlCommand command = new SqlCommand("INSERT INTO t_Student " +
"VALUES (@StuNo,@Name,@Tutor,@LabNo)", con);
======
SqlCommand command = new SqlCommand("INSERT INTO t_Student (StuNo,Name,Tutor,LabNo) " +
"VALUES (@StuNo,@Name,@Tutor,@LabNo)", con);

指定列进行插入操作
haha157373 2010-09-29
  • 打赏
  • 举报
回复
谢谢了 很好的[Quote=引用 2 楼 cdf881125 的回复:]
INSERT INTO t_Student VALUES (@StuNo,@Name,@Tutor,@LabNo)
在Student 后把你要插入数据的列写出来
[/Quote]
haha157373 2010-09-29
  • 打赏
  • 举报
回复
呵呵 谢谢 小女子初来乍到 多谢各位高人了[Quote=引用 1 楼 q107770540 的回复:]
SqlCommand command = new SqlCommand("INSERT INTO t_Student " +
"VALUES (@StuNo,@Name,@Tutor,@LabNo)", con);
======
SqlCommand command = new SqlCommand("INSERT INTO t_Student (StuNo,Name,Tutor,Lab……
[/Quote]

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧