当前位置: 首页 > 知识库问答 >
问题:

从网格视图中删除行时出错

有玄天
2023-03-14

我试图通过使用网格控制器的图像按钮从我的网格视图中删除一行。 但是,在cmd.executeNonQuery();行出现错误

错误消息为

将varchar值“MCMC98”转换为数据类型int时转换失败。

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    Label User_Id = GridView1.Rows[e.RowIndex].FindControl("Label2") as Label;
    String mycon = "Data Source=datasoruce; Initial Catalog=BusCards; Integrated Security=True";
    String updatedata = "delete from Users where User_Id=" + User_Id.Text;
    SqlConnection con = new SqlConnection(mycon);
    con.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = updatedata;
    cmd.Connection = con;
    cmd.ExecuteNonQuery();
    Label0.Text = "Row Data Has Been Deleted Successfully";
    GridView1.EditIndex = -1;
    SQLCPGO10.DataBind();
    GridView1.DataSource = datasource;
    GridView1.DataBind();
}

共有2个答案

王鹏飞
2023-03-14

在将varchar值“MCMC98”转换为数据类型int时,错误转换失败。

这里的这个

User_Id=" + User_Id.Text;

您正在向此查询添加一个字符串,但sql将把它当作int,因为您没有在值周围加上单引号。

所以应该是:

"User_Id='" + User_Id.Text + "'";
夏法
2023-03-14

我在您的代码中看到了许多问题:

  1. 您从不释放IDisposable对象(例如SqlConnection)
  2. 您的查询以字符串形式追加参数,而不是以sqlparameters形式传递参数,这使得您的代码容易受到sql注入的攻击
  3. 您正在尝试将字符串作为int传递
 类似资料:
  • 问题内容: 从视图中删除一行,是否会从创建该视图的基表中删除相应的行?我正在使用MySQL。 问题答案: 是的,它会的。唯一需要注意的是权限。 引用官方文档 有些观点是可更新的。也就是说,您可以在诸如UPDATE,DELETE或INSERT之类的语句中使用它们来更新基础表的内容。为了使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。还有某些其他构造会使视图不可更新。

  • 我的Jtable有一个listSelectionListener: 我创建了一个按钮来删除带有事件的Jtable的所有行: 如果我在没有选择任何行的情况下按下按钮,则不会出现错误,但当我选择一行,然后按下按钮时,会出现以下错误: 当表没有ListSseltionListener时,不会发生这种情况。我哪里错了? 提前感谢您的帮助。

  • 本文向大家介绍从视图中删除行会从MySQL的基表中删除行吗?,包括了从视图中删除行会从MySQL的基表中删除行吗?的使用技巧和注意事项,需要的朋友参考一下 是的,从视图中删除行从基表中删除行。让我们通过创建一个新表来了解这一点。创建表的查询如下 使用insert命令在表中插入一些记录。查询如下- 使用select语句显示表中的所有记录。查询如下- 以下是输出 让我们创建一个视图。创建视图的查询如下

  • 问题内容: 加入主表时,我的视图工作正常: 但是我需要添加以下联接: 尽管我添加了,但仍然得到了“重复”行。我说“重复”是因为第二行具有不同的值。 但是,如果将更改为,则会丢失具有这些“重复”行的客户端的所有行。 我究竟做错了什么?如何从视图中删除这些“重复的”行? 笔记: 此问题在这种情况下不适用: 如何删除重复的行? 问题答案: 如果行中有任何不同的列,DISTINCT不会为您提供帮助。显然,

  • 我的任务:我必须从jsp视图中删除对表“testtable”的每一行操作。 后端MySQL:=我有两个表一个“userinfo”用于aurtherntication,另一个表“testtable”。 对于两个表连接,我使用了jsp中的隐藏字段输入,而不是使用外键关系。 在控制台打印中,我们可以在单击delete按钮后看到com.mysql.jdbc.jdbc4PreparedStatement@1

  • 我已经搜索了多个网站,android开发者网站,在没有运气解决我的问题后,我不得不寻求社区帮助。我们将非常感谢所有的帮助和建议。 问题: 我总共有12个从服务器接收的图像(在这里解析),我在一个PagerAdapter中显示了它们中的每一个。如果所有的值都不为空,适配器代码工作正常,问题是我允许空值存储在服务器中。当我从服务器获得整个列表时,我只想在包含not null的适配器中拥有这些视图。例如

  • 网格视图是一个类似数据表的视图,将文档和字段显示为行和列。导航栏可让你快速地切换、插入或删除文档。 使用网格添加一个文档 点击现有的记录并在导航栏点击 或按 CTRL+N 来得到一个空白显示的文档。 输入所需的数据。 请看记录左侧的选择框。它会由指示当前记录的图形符号 变为指示你正在编辑该记录的图形符号 。 若要保存文档,只需简单地移动到另一个文档或在导航栏点击 。 【注意】如果你的集合是空的,会

  • 网格视图是一个类似数据表的视图,将文档和字段显示为行和列。导航栏可让你快速地切换、插入或删除文档。 使用网格添加一个文档 点击现有的记录并在导航栏点击 或按 COMMAND-+ 来得到一个空白显示的文档。 输入所需的数据。 请看记录左侧的选择框。它会由指示当前记录的图形符号 变为指示你正在编辑该记录的图形符号 。 若要保存文档,只需简单地移动到另一个文档或在导航栏点击 。 【注意】如果你的集合是空