就是一个查询问题  但是  明明是可以的 为什么每次显示 0或者-1
我发誓,我是都测试过了 还是不可以才提问的。
问题就是一个数据库查询问题:
 
窗体的。
节目有:  一个TextBox  和一个 查询按钮
 
点击查询 按钮   执行下面的代码: string chaxunstr = "select * from KC_table where KC_name='"+textBox5.Text.Trim().ToString()+"'";
            ClassSQL newsql = new ClassSQL();
            newsql.SQLopen();
            int reg=newsql.DBoperarion(chaxunstr);            
           
           
            if (reg>0)
            {
                MessageBox.Show("查到结果了!");
                SqlDataAdapter da = new SqlDataAdapter("select * from KC_table where KC_name='" + textBox5.Text.Trim().ToString() + "'", newsql.SQLcon);
                DataSet ds = new DataSet();
                da.Fill(ds, "new_table");
                dataGridView1.DataSource = ds.Tables[0];
                newsql.SQLclose();            }
            else
            {
                newsql.SQLclose();
                MessageBox.Show("查不到东西");
            }问题  每次  都是 返回 0 或者-1    都不会得到1  
 
用的是 SQL 2008 的  我在 数据的 T-SQL 查询执行下面的代码
select * from KC_table where KC_name='世贸商城'
就可以显示 该行
麻烦 帮忙一下 谢谢这个是 数据库的 执行代码/// <summary>
        /// 数据库执行语句
        /// </summary>
        /// <param name="OPstring"></param>
        /// <returns></returns>
        public int DBoperarion(string OPstring)
        {
            SqlCommand mycmd = new SqlCommand(OPstring, SQLcon);
            try
            {
                int OPresult = mycmd.ExecuteNonQuery();
                return OPresult;
            }
            catch
            {
                return 0;
            }
            finally
            {
                SQLclose();
            }
        }

解决方案 »

  1.   

    int OPresult = mycmd.ExecuteNonQuery();返回的是查询到的记录数目,你可以用这个sql语句在sql查询分析器中执行一下,看看有没有记录,也许你的数据库中根本没有符合条件的数据,
      

  2.   

    你那个 方法 就是 返回的 int 类型的 数据,你要得到 行 这你要自己写方法了。
      

  3.   

    ExecuteNonQuery()是用来执行数据更新操作的,你应该换一个方法,比如ExecuteDataReader。
      

  4.   

    /// <summary>
            /// 数据库执行语句
            /// </summary>
            /// <param name="OPstring"></param>
            /// <returns></returns>
            public int DBoperarion(string OPstring)
            {
                SqlCommand mycmd = new SqlCommand(OPstring, SQLcon);
                try
                {
                    int OPresult = mycmd.ExecuteNonQuery();
                    return OPresult;
                }
                catch
                {
                    return 0;
                }
                finally
                {
                    SQLclose();
                }
            }你太搞了,不能用  ExecuteNonQuery
    要 用ExecuteReader() 或是用 SqlAdapter 
      

  5.   

     ExecuteNonQuery 
    对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1。
      

  6.   

      SqlCommand mycmd = new SqlCommand(OPstring, SQLcon);
                try
                {
                    int OPresult = mycmd.ExecuteNonQuery();
                    return OPresult;
                }
                catch
                {
                   return 0;
                }
                finally
                {
                    SQLclose();
                }
    你那是增删改的方法
    不知道怎么说你了
        //属性:数据库链接对象
            private static SqlConnection conn;
            public static SqlConnection Conn
            {
                get
                {
                    try
                    {
                    //    string configValue = ConfigurationManager.ConnectionStrings["ServerName"].ConnectionString;
                        string connstr = "server=.;database=cs;User ID=sa;Password=test";
                        if (conn == null)
                            conn = new SqlConnection(connstr);
                        if (conn.State == ConnectionState.Closed)
                            conn.Open();
                        if (conn.State == ConnectionState.Broken)
                        {
                            conn.Close();
                            conn.Open();
                        }
                        return conn;
                    }
                    catch (Exception ex)
                    {                    throw;
                    }
                }
            }        //查询:DataTable
            public static DataTable GetTable(string SqlStr)
            {
                try
                {
                    SqlDataAdapter dap = new SqlDataAdapter(SqlStr, Conn);
                    DataSet ds = new DataSet();
                    dap.Fill(ds);
                    conn.Close();
                    return ds.Tables[0];
                }
                catch (Exception ex)
                {                throw;
                }
            }        //增删改
            public static bool Execute(string SqlStr)
            {
                SqlCommand cmd = new SqlCommand(SqlStr, Conn);
                int result = cmd.ExecuteNonQuery();
                conn.Close();
                return result > 0;
            }
      

  7.   

    你这样的话不知道是因为异常引起返回0,还是真的查询不到,你可以这样先试试,看看到底是不是异常:        public int DBoperarion(string OPstring)
            {
                SqlCommand mycmd = new SqlCommand(OPstring, SQLcon);
                try
                {
                    int OPresult = mycmd.ExecuteNonQuery();
                    return OPresult;
                }
                catch
                {
                    throw;
                }
                finally
                {
                    SQLclose();
                }
            }
      

  8.   


    /// <summary>
            /// 数据库执行语句
            /// </summary>
            /// <param name="OPstring"></param>
            /// <returns></returns>
            public int DBoperarion(string OPstring)
            {
                SqlCommand mycmd = new SqlCommand(OPstring, SQLcon);
                try
                {
                   SqlDataReader reader = mycmd.ExecuteDataReader();
                   
                    
                 string test = reader["字段"] 
                   return OPresult;
                }
                catch
                {
                    return 0;
                }
                finally
                {
                    SQLclose();
                }
            }
      

  9.   

    select count(*) from 
    execute.scalar
      

  10.   

    string chaxunstr = "select count(1) from KC_table where KC_name='"+textBox5.Text.Trim().ToString()+"'";
                ClassSQL newsql = new ClassSQL();
                newsql.SQLopen();
                int reg=newsql.DBoperarion(chaxunstr);
    修改如下
     public int DBoperarion(string OPstring)
            {
                SqlCommand mycmd = new SqlCommand(OPstring, SQLcon);
                try
                {
                    int OPresult = mycmd.ExecuteScalar();
                    return OPresult;
                }
                catch
                {
                    return 0;
                }
                finally
                {
                    SQLclose();
                }
            }
      

  11.   

    参考http://msdn.microsoft.com/zh-tw/library/system.data.sqlclient.sqlcommand.executescalar(VS.80).aspx