strSql = "select * from table where field1 = @field1 and field2 like '%@field2%'"
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = this.conn;//conn是已经建好的连接,是可以用的,绝对没问题
cmd.CommandText = strSql;
cmd.Parameters.Add("@field1",OleDbType.VarChar,50);
cmd.Parameters.Add("@field2",OleDbType.VarChar,50);
cmd.Parameters["@field1"].Value = "str1";
cmd.Parameters["@field2"].Value = "str2";
this.Open();
cmd.ExecuteNonQuery();
this.Close();这个SQL搜索不出数据,我也试过另外的拼装形式,都搜索不出数据,如下:
strSql = "select * from table where field1 = @field1 and field2 like '@field2'"
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = this.conn;//conn是已经建好的连接,是可以用的,绝对没问题
cmd.CommandText = strSql;
cmd.Parameters.Add("@field1",OleDbType.VarChar,50);
cmd.Parameters.Add("@field2",OleDbType.VarChar,50);
cmd.Parameters["@field1"].Value = "str1";
cmd.Parameters["@field2"].Value = “%”+"str2"+“%”;
this.Open();
cmd.ExecuteNonQuery();
this.Close();又或者:
strSql = "select * from table where field1 = @field1 and field2 like @field2"
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = this.conn;//conn是已经建好的连接,是可以用的,绝对没问题
cmd.CommandText = strSql;
cmd.Parameters.Add("@field1",OleDbType.VarChar,50);
cmd.Parameters.Add("@field2",OleDbType.VarChar,50);
cmd.Parameters["@field1"].Value = "str1";
cmd.Parameters["@field2"].Value = “'%”+"str2"+“%'”;
this.Open();
cmd.ExecuteNonQuery();
this.Close();也不行,试过用*号代替%号还是不行,请大家帮忙看看,指教指教,谢谢!
开发工具是VS.NET2005,开发语言是C#,做的是WINFORM.
另外,如果不用模糊搜索,纯粹的A=变量A,这样就可以搜索出数据。
如果用模糊搜索,但是不使用Parameters,而是直接把变量拼接到SQL中,也可以搜索出正确数据。
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = this.conn;//conn是已经建好的连接,是可以用的,绝对没问题
cmd.CommandText = strSql;
cmd.Parameters.Add("@field1",OleDbType.VarChar,50);
cmd.Parameters.Add("@field2",OleDbType.VarChar,50);
cmd.Parameters["@field1"].Value = "str1";
cmd.Parameters["@field2"].Value = "str2";
this.Open();
cmd.ExecuteNonQuery();
this.Close();这个SQL搜索不出数据,我也试过另外的拼装形式,都搜索不出数据,如下:
strSql = "select * from table where field1 = @field1 and field2 like '@field2'"
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = this.conn;//conn是已经建好的连接,是可以用的,绝对没问题
cmd.CommandText = strSql;
cmd.Parameters.Add("@field1",OleDbType.VarChar,50);
cmd.Parameters.Add("@field2",OleDbType.VarChar,50);
cmd.Parameters["@field1"].Value = "str1";
cmd.Parameters["@field2"].Value = “%”+"str2"+“%”;
this.Open();
cmd.ExecuteNonQuery();
this.Close();又或者:
strSql = "select * from table where field1 = @field1 and field2 like @field2"
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = this.conn;//conn是已经建好的连接,是可以用的,绝对没问题
cmd.CommandText = strSql;
cmd.Parameters.Add("@field1",OleDbType.VarChar,50);
cmd.Parameters.Add("@field2",OleDbType.VarChar,50);
cmd.Parameters["@field1"].Value = "str1";
cmd.Parameters["@field2"].Value = “'%”+"str2"+“%'”;
this.Open();
cmd.ExecuteNonQuery();
this.Close();也不行,试过用*号代替%号还是不行,请大家帮忙看看,指教指教,谢谢!
开发工具是VS.NET2005,开发语言是C#,做的是WINFORM.
另外,如果不用模糊搜索,纯粹的A=变量A,这样就可以搜索出数据。
如果用模糊搜索,但是不使用Parameters,而是直接把变量拼接到SQL中,也可以搜索出正确数据。
field2 like '%' + @field2 + '%'"
BigIdiot628,能解释一下为什么在最前面加@吗?那样写的话,没有在双引号内,C#会认得吗?cnzjsxwine,你说的是真的吗?
自己修改一下 这是我写的