SqlCommand _SqlCommand = new SqlCommand("USP_Search", _SqlConnection);
            _SqlCommand.CommandType = CommandType.StoredProcedure;
            _SqlCommand.Parameters.Add("@SearchNumbers", txtNumbers.Text);
            _SqlCommand.Parameters.Add("@SearchName", txtName.Text);
            _SqlCommand.ExecuteNonQuery();
这下来.再怎么把他的结果存储到DataTable
这里不知道怎么写了存储过程是这样ALTER PROCEDURE USP_Search
@SearchNumbers varchar,
@SearchName varchar
AS
select * from Users where Numbers=@SearchNumbers,Name=@SearchName

解决方案 »

  1.   

    ExecuteNonQuery();
    这个函数 返回的是受影响的函数。Select语句,得到的返回值是-1。
      

  2.   

    MSDN:对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于其他所有类型的语句,返回值为 -1。
      

  3.   

    DataSet ds = new DataSet();
                SqlDataAdapter sda = new SqlDataAdapter(_SqlCommand );
                sda.Fill(ds);
    return ds.Tables[0]
      

  4.   

    我这个意思我明白,我现在想知道如何把存储过程里面的值返回到DataTable.想用他来填充DGV控件
      

  5.   

    DataTable dt=new DataTable("Result");
    DataSet ds = new DataSet();
    SqlDataAdapter sda = new SqlDataAdapter(_SqlCommand );
    sda.Fill(ds);
    dt=ds.Tables[0]
    return dt;
      

  6.   

    用SqlDataAdapter打开,然后Fill到DataSet里面去
      

  7.   


                SqlConnection _SqlConnection = sqlFunction.getConnection();
                SqlCommand _SqlCommand = new SqlCommand("USP_Search", _SqlConnection);
                _SqlCommand.CommandType = CommandType.StoredProcedure;
                _SqlCommand.Parameters.AddWithValue("@SearchNumbers", txtNumbers.Text);
                _SqlCommand.Parameters.AddWithValue("@SearchName", txtName.Text);
                _SqlConnection.Open();
                _SqlCommand.ExecuteNonQuery();
                SqlDataAdapter _SqlDataAdapter = new SqlDataAdapter(_SqlCommand);
                _SqlDataAdapter.Fill(_DataTable);
                dgvSearchResult.DataSource = _DataTable;我改样dgvSearchResult查询出来没有结果.哪错了呢
      

  8.   

     SqlConnection conn = new SqlConnection(connstring);
     SqlDataAdapter sda = new SqlDataAdapter();
     DataTable dt = new DataTable();
     conn.Open();
     sda.SelectCommand = new SqlCommand("USP_Search",_SqlConnection);
    sda.SelectCommand.CommandType = CommandType.StoredProcedure;
    sda.SelectCommand.Parameters.AddRange(("@SearchNumbers", txtNumbers.Text);
    sda.SelectCommand.Parameters.Add("@SearchName", txtName.Text);
    sda.Fill(dt);
    return dt;
      

  9.   

    DGV.DataSource = dt;
    DGV里面要绑定dt里面的列
      

  10.   

    我用数据源不行的吗?
     dgvSearchResult.DataSource 
    每列每列绑定不现实呀.
      

  11.   

    我现在是这样的.现在DGV里面没有结果
      

  12.   

    你写错了!
    SqlCommand _SqlCommand = new SqlCommand("USP_Search", _SqlConnection);
    _SqlCommand.CommandType = CommandType.StoredProcedure;
    _SqlCommand.Parameters.Add("@SearchNumbers", txtNumbers.Text);
    _SqlCommand.Parameters.Add("@SearchName", txtName.Text);
    DataTable dt=new DataTable("Result");
    DataSet ds = new DataSet();
    SqlDataAdapter sda = new SqlDataAdapter(_SqlCommand );
    sda.Fill(ds);
    dt=ds.Tables[0]
    return dt;试试
                
      

  13.   

                SqlConnection _SqlConnection = sqlFunction.getConnection();
                SqlCommand _SqlCommand = new SqlCommand("USP_Search", _SqlConnection);
                _SqlCommand.CommandType = CommandType.StoredProcedure;
                _SqlCommand.Parameters.AddWithValue("@SearchNumbers", txtNumbers.Text);
                _SqlCommand.Parameters.AddWithValue("@SearchName", txtName.Text);
                _SqlConnection.Open();
                
                SqlDataAdapter _SqlDataAdapter = new SqlDataAdapter(_SqlCommand);
                DataSet _DataSet = new DataSet();
               // _SqlCommand.ExecuteNonQuery();
                _SqlDataAdapter.Fill(_DataSet);
                _DataTable = _DataSet.Tables[0];
               dgvSearchResult.DataSource = _DataTable;//不知是这里怎么写,调试也是没有数据
      

  14.   

    SqlConnection _SqlConnection = new SqlConnection("连接字符串")
      SqlCommand _SqlCommand = new SqlCommand("USP_Search", _SqlConnection);
      _SqlCommand.CommandType = CommandType.StoredProcedure;
      _SqlCommand.Parameters.AddWithValue("@SearchNumbers", txtNumbers.Text);
      _SqlCommand.Parameters.AddWithValue("@SearchName", txtName.Text);
     SqlDataAdapter _SqlDataAdapter = new SqlDataAdapter(_SqlCommand);
      DataSet _DataSet = new DataSet();
     DataTable _DataTable=new DataTable("result")
      // _SqlCommand.ExecuteNonQuery();
      _SqlDataAdapter.Fill(_DataSet);
      _DataTable = _DataSet.Tables[0];
      dgvSearchResult.DataSource = _DataTable;
    把open去掉
    实在不行自己调试看看,或者先不用存储过程,用sql语句测试下,看能不能读取数据出来
      

  15.   

    测了.用SEL语句可以
    直接在分析器里面
    EXEC USP_Search @SearchNumbers='001',@SearchName=''
    竟然没值....我晕
    但直接用过程里面的SQL语句来查又OK.不解
      

  16.   


    ALTER PROCEDURE USP_Search
    @SearchNumbers varchar,
    @SearchName varcharAS

    SELECT dbo.Department.DepName, dbo.Position.P_Name, dbo.Employees.Numbers, dbo.Employees.Ename, dbo.Employees.Sex, dbo.Employees.ENational, 
                             dbo.Employees.NameID, dbo.Employees.birth, dbo.Employees.Marital, dbo.Employees.School, dbo.Employees.Specialty, dbo.Employees.Native, 
                             dbo.Employees.Tel, dbo.Employees.NowAddress, dbo.Employees.Household, dbo.Employees.RelativeName, dbo.Employees.RelativeTel, 
                             dbo.Employees.ERelative, dbo.Employees.Training, dbo.Employees.WorkExperience, dbo.Employees.AddTime, dbo.Employees.State
    FROM            dbo.Employees INNER JOIN
                             dbo.Position ON dbo.Employees.PostID = dbo.Position.PostID INNER JOIN
                             dbo.Department ON dbo.Position.DepartID = dbo.Department.DepartID  WHERE (dbo.Employees.Numbers = @SearchNumbers) OR  (dbo.Employees.Ename = @SearchName)这就是存储过程.没看到有错.为啥就是没有值呢
      

  17.   

    as后面
    begin开始
    end 结束
      

  18.   


    SqlCommand _SqlCommand = new SqlCommand("USP_Search", _SqlConnection);
                _SqlCommand.CommandType = CommandType.StoredProcedure;
                _SqlCommand.Parameters.Add("@SearchNumbers", txtNumbers.Text);
                _SqlCommand.Parameters.Add("@SearchName", txtName.Text);
               // _SqlCommand.ExecuteNonQuery(); 这个不要        SqlDataAdapter DataAdapter = new SqlDataAdapter();
    this.DataAdapter.SelectCommand = this.SqlCommand;
    this.DataAdapter.Fill(dt);
      

  19.   

    老大ExecuteNonQuery();返回的是影响的行数不是Fill那样返回数据集合,要区分清楚~\(≧▽≦)/~啦啦啦
      

  20.   

    SqlCommand _MyComm= new SqlCommand("存储过程的名称", _SqlConnection);
    _MyComm.CommandType = CommandType.StoredProcedure;
    _MyComm.Parameters.Add("@SearchNumbers", txtNumbers.Text);
    _MyComm.Parameters.Add("@SearchName", txtName.Text);
    SqlDataAdapter DataAdapter = new SqlDataAdapter();
    this.DataAdapter.SelectCommand = this.MyComm;
    this.DataAdapter.Fill(dt);
    然后dt在给定要绑定的控件就行~\(≧▽≦)/~啦啦啦
      

  21.   

    ALTER PROCEDURE USP_Search
    @SearchNumbers varchar,
    @SearchName varchar
    AS
    select * from Users where Numbers=@SearchNumbers,Name=@SearchName这里面的 @SearchNumbers varchar 和@SearchName varchar 你确定varchar后面没少什么东西?  
    长度