ado.net求助

xiaorujia1 2012-05-31 11:39:05
一个按钮点击删除数据库中的一列出错
报错语句:Cmd.ExecuteNonQuery();

提示信息:
“System.Data.SqlClient.SqlException”类型的未经处理的异常出现在 System.Data.dll 中。

其他信息: 对象名 'dbo.M_Information_Tombstone' 无效。
点击事件有码为:
private void button1_Click(object sender, EventArgs e)
{



using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\User.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();//打开与数据库的连接
using (SqlCommand Cmd = conn.CreateCommand())
{
Cmd.CommandText = "DELETE FROM [dbo].[M_Information] WHERE 药品名称=@药品名称";
Cmd.Parameters.Add(new SqlParameter("药品名称", comboBox1.Text));
Cmd.ExecuteNonQuery();
}
conn.Close();
}



combobox1为药品名称的下拉列表
试着用Dataset的方法去做
M_InformationDataSetTableAdapters.M_InformationTableAdapter mta = new M_InformationDataSetTableAdapters.M_InformationTableAdapter();
mta.DeleteByM_Name(comboBox1.Text);
dataGridView1.Update();
MessageBox.Show("删除成功");

结果同样报错,相同的地方相同的错误!
求大神解救
...全文
159 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaorujia1 2012-06-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
private void button1_Click(object sender, EventArgs e)
{



using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\User.mdf;Integrated Secur……
[/Quote]
试过了还是不行,还是原来那个问题报错郁闷
xiaorujia1 2012-06-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
有点奇怪,2楼指出的是其中一个错误,

不过提示信息似乎不是这个错误造成的,建议把

DELETE FROM M_Information WHERE 药品名称=@药品名称

这句贴到查询分析器去运行,看看是否能成功,
[/Quote]
试过了,显示sql执行错误
已执行sql语句
错误源:net sqlclient data provider
错误信息:对象名‘dbo.M_Information_tomstone’无效
jyj545 2012-06-01
  • 打赏
  • 举报
回复
我同意7楼
  • 打赏
  • 举报
回复
private void button1_Click(object sender, EventArgs e)
{



using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\User.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();//打开与数据库的连接
using (SqlCommand Cmd = new SqlCommand())
{
Cmd.Connection=conn;
Cmd.CommandText = "DELETE FROM M_Information WHERE 药品名称=@药品名称";
Cmd.Parameters.Add(new SqlParameter("@药品名称", comboBox1.Text.Trim()));
Cmd.ExecuteNonQuery();
}
conn.Close();
}

色拉油 2012-06-01
  • 打赏
  • 举报
回复
M_Information_Tombstone 是什么
ParanoidKing 2012-06-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

有点奇怪,2楼指出的是其中一个错误,

不过提示信息似乎不是这个错误造成的,建议把

DELETE FROM M_Information WHERE 药品名称=@药品名称

这句贴到查询分析器去运行,看看是否能成功,
[/Quote]

如果没加@替换的就是等号前面的“药品名称”,M_Information_Tombstone应该是comboBox1.Text,这时的SQL就是DELETE FROM [dbo].[M_Information] WHERE M_Information_Tombstone=...
l1103294466 2012-06-01
  • 打赏
  • 举报
回复
我想知道你的代码里哪里出现了'dbo.M_Information_Tombstone'
stonespace 2012-06-01
  • 打赏
  • 举报
回复
有点奇怪,2楼指出的是其中一个错误,

不过提示信息似乎不是这个错误造成的,建议把

DELETE FROM M_Information WHERE 药品名称=@药品名称

这句贴到查询分析器去运行,看看是否能成功,
ParanoidKing 2012-05-31
  • 打赏
  • 举报
回复
Cmd.Parameters.Add(new SqlParameter("@药品名称", comboBox1.Text));
暖枫无敌 2012-05-31
  • 打赏
  • 举报
回复
1、首先检查User.mdf这个数据库中是否有M_Information_Tombstone??

2、Cmd.CommandText = "DELETE FROM M_Information WHERE 药品名称=@药品名称";

你上面是M_Information_Tombstone

到底是哪个??

你仔细检查一下

111,126

社区成员

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

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

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