private void button1_Click(object sender, System.EventArgs e)
{

string tradecode = tradeCode.Text;
string tradename = tradeName .Text;
string type = tradeType.Text;
string AddSql="";
if(tradecode!="")AddSql+="and tradecode like '%"+tradecode+"%";
if(tradename!="")AddSql+="and tradename like '%"+tradename+"%";
if(type!="")AddSql+="and type like '%"+type +"%";
SqlConnection conn= new SqlConnection("Data Source=(local);DataBase=db_Ewss;Integrated Security=SSPI");
conn.Open();

SqlDataAdapter sda = new SqlDataAdapter("select tradecode as [商品编号],tradename as [商品名称],type as [商品类型],unit as [单位],qty as[ 商品数量],price as [最后一次进价],saleprice as [最后一次销价],averageprice as [加权平均价],checkqty as [盘点数量] from tb_stock where type like '%"+type+"%' "+AddSql+" Order by tradecode ",conn);
//FPara.connStr就是组件中的数据库连接字符串 
DataSet ds = new DataSet();
sda.Fill(ds,"tb_stock");
StockCheck.DataSource = ds.Tables["tb_stock"].DefaultView;
Rds = ds;
StockCheck.SetDataBinding(ds,"tb_stock");
  
  
            

}点击按钮想实现查询,但是显示“
未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。其他信息: 系统错误。
”绿色反光标示  sda.Fill(ds,"tb_stock");语句
问题处在那里啊?怎么解决啊 ,谢谢拉

解决方案 »

  1.   

    if(tradecode!="")AddSql+="and tradecode like '%"+tradecode+"%'";
    if(tradename!="")AddSql+="and tradename like '%"+tradename+"%'";
    if(type!="")AddSql+="and type like '%"+type +"%'";///不要忘记打结束 '
      

  2.   

    if(tradecode!="")AddSql+="and tradecode like '%"+tradecode+"%";
    //你看你代码里 % 后是不是少了个 ' ?你完全没有看我上面发出的代码嘛。
      

  3.   

    为什么有两个type like '%"+type+"%'???
      

  4.   

    如果type为空的话那不是成了:type like '%%'了??
      

  5.   

    还是有错
    改成下面吧:
    if(tradecode!="")AddSql+="and tradecode like '%"+tradecode+"%' ";
    if(tradename!="")AddSql+=" and tradename like '%"+tradename+"%'";
    if(type!="")AddSql+=" and type like '%"+type +"%'";
    如个2个条件都为真,那么你这里加在一起的条件就连一起了;应该用空格分开
      

  6.   

    你其实可以把你的语句放在SQL查询分析器里运行一下看看然后在做判断.
      

  7.   

    string tradecode = tradeCode.Text.Trim();
    string tradename = tradeName .Text.Trim();以免别人敲空格
      

  8.   

    from tb_stock where type like '%"+type+"%' "+AddSql+" Order by tradecode 这里面的 AddSql 写了什么?
    感觉这里有可能错了
      

  9.   

    if(tradecode!="")AddSql+="and tradecode like '%"+tradecode+"%";
    if(tradename!="")AddSql+="and tradename like '%"+tradename+"%";
    if(type!="")AddSql+="and type like '%"+type +"%";and前面要空格吧
    你把sql语句打印出来就知道错了没
      

  10.   

    谢谢sbqcel(活死人) ,呵呵按照你的方法可以了,太感谢了,也谢谢大家,祝你们快乐^^
      

  11.   

    string tradecode = tradeCode.Text.Trim();
    string tradename = tradeName .Text.Trim();
      谢谢,有学习了一招