通用查询方法传值问题?

Mr.Huang…… 2013-11-16 01:24:48

静态类中声明的两个方法
private static SqlCommand FormatSql(string Format_Sql, params SqlParameter[] Format_cmdParms)
{
SqlCommand cmd = new SqlCommand(Format_Sql, SqlConn);

if (Format_cmdParms != null)
{
foreach (SqlParameter parm in Format_cmdParms)
cmd.Parameters.Add(parm);
}
return cmd;
}
public static DataSet GetQuery(string s_SQL, params SqlParameter[] cmdParms)
{
SqlConn.Close();
SqlCommand MyCommand = FormatSql(s_SQL, cmdParms);
SqlDataAdapter MyAdp = new SqlDataAdapter(MyCommand);
DataSet MyDS = new DataSet();
MyAdp.Fill(MyDS, "MyDS");
MyCommand.Parameters.Clear();
SqlConn.Close();
return MyDS;
}

窗体下按钮事件下写的代码
MyDS= IniClass.GetQuery("SELECT * FROM t1 WHERE id LIKE @JM OR mc LIKE @JM",
new SqlParameter("JM","%" + t_jm.Text.Trim() + "%"), new SqlParameter("JM",
"%" +t_jm.Text.Trim() + "%"));
dataGridView1.DataSource = MyDS.Tables["MyDS"];





这个是怎么用的
...全文
134 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen0815qh 2013-11-17
  • 打赏
  • 举报
回复
不行的,对于参数化查询,sql语句中的参数名必须是唯一的,否则会报错。
Mr.Huang…… 2013-11-16
  • 打赏
  • 举报
回复

IniClass.GetQuery("SELECT * FROM t1 WHERE id LIKE @JM OR mc LIKE @JM",
new SqlParameter("JM","%" + t_jm.Text.Trim() + "%");
能不能这样写,因为查询语句里有两个@JM,传值的时候就传一个,他的值是一样的
  • 打赏
  • 举报
回复
2L说的对
  • 打赏
  • 举报
回复
引用 3 楼 HQB313 的回复:
[quote=引用 2 楼 wangweimutou 的回复:] 为什么要写一样的呢
因为查询语句里面用了两个@JM[/quote] 把第一个变量改成@id 然后把第一个参数也改成id 试试
Mr.Huang…… 2013-11-16
  • 打赏
  • 举报
回复
引用 1 楼 Hsuifengershi 的回复:
把第2个@JM 改成别的 @id
是不是查询语句里面的变量必须唯一
Mr.Huang…… 2013-11-16
  • 打赏
  • 举报
回复
引用 2 楼 wangweimutou 的回复:
为什么要写一样的呢
因为查询语句里面用了两个@JM
  • 打赏
  • 举报
回复
把第2个@JM 改成别的 @id

111,092

社区成员

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

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

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