表中有字段:性别,班级,年龄,如何获取表中满足年龄等于20,性别为男,的所有行中的某一字段,比如班级都是那个班的?  SQL语句我会,我想请教一个数据库的操作方法,我写入类中。谢谢最好给一个操作方法代码。多谢

解决方案 »

  1.   

    LINQ to SQL搞定吧。具体语法也简单,自己找找资料,看一会儿就明白了。
      

  2.   

    using System;
    using System.Data;
    using System.Data.SqlClient;namespace Demo
    {
        internal class Program
        {
            private static void Main(string[] args)
            {
                string connstr = "Server=.;Database= NorthWind;Integrated Security=true";
                string sql = "select CompanyName from Customers where CustomerID = @CustomerID";
                IDbDataParameter para = new SqlParameter("@CustomerID", SqlDbType.Char, 5);
                para.Value = "ALFKI";
                DataTable dt = GetResult(connstr, sql, para);
                int columsCount = dt.Columns.Count;
                foreach (DataRow dataRow in dt.Rows)
                {
                    for (int j = 0; j < columsCount; j++)
                    {
                        Console.Write(dataRow[j] + "\t");
                    }
                    Console.WriteLine();
                }
                Console.ReadLine();
            }        public static DataTable GetResult(string connStr, string sql, params IDbDataParameter[] parameters)
            {
                using (var conn = new SqlConnection(connStr))
                {
                    SqlCommand command = conn.CreateCommand();
                    command.CommandText = sql;
                    if (parameters != null)
                    {
                        command.Parameters.AddRange(parameters);
                    }
                    var adapter = new SqlDataAdapter(command);
                    var ds = new DataSet();
                    adapter.Fill(ds);
                    return ds.Tables[0];
                }
            }
        }
    }
      

  3.   

        protected void getname()
        {
            //select选出结果集到dataset里面
            SqlConnection conn = new SqlConnection("server=localhost;database=KaoQin_320;user id=sa;Pwd=123");
            string sql = "select 性别,班级,年龄 from T_Hall where ...";
            SqlDataAdapter sqldap = new SqlDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            sqldap.Fill(ds);
      
           string sex= ds.tables[0].rows[0].item["性别"];
    //tring class= ds.tables[0].rows[0].item["班别"];
    //tring age= ds.tables[0].rows[0].item["年龄"];
    return sex; //返回某一字段     }
       
      

  4.   

        public string getname()
        {
            //select选出结果集到dataset里面
            SqlConnection conn = new SqlConnection("server=localhost;database=KaoQin_320;user id=sa;Pwd=123");
            string sql = "select 性别,班级,年龄 from T_Hall where ...";
            SqlDataAdapter sqldap = new SqlDataAdapter(sql, conn);
            DataSet ds = new DataSet();
            sqldap.Fill(ds);
      
           //string sex= ds.tables[0].rows[0].item["性别"];
    tring class= ds.tables[0].rows[0].item["班别"];
    //tring age= ds.tables[0].rows[0].item["年龄"];
    return class; //返回班级     }
       
    调用
    string class=getname()
      

  5.   


    public override IDataReader Select( UserInfo e ) {
                //构造SQL语句
                string sql = "SELECT 字段1,字段2,字段N FROM [UserInfo] WHERE 性别=@性别 AND 年龄=@年龄";            //构造参数
                SqlParameter[] parameters = {
                    new SqlParameter("@性别",SqlDbType.Int),
                    new SqlParameter("@年龄",SqlDbType.Int),
                };            //为参数传值
                int i = 0;
                parameters[ i++ ].Value = e.性别;
                parameters[ i++ ].Value = e.年龄;            //执行SQL语句
                try {
                    return db.ExecuteReader( CommandType.Text, sql, parameters );
                } catch( Exception exp ) {
                    throw exp;
                }
            }
      

  6.   

    using System;
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using System.Data;
    using System.Text;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Collections;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.IO;
    using System.Xml;
    using System.Reflection;namespace SYS.DBUtility
    {
        /// <summary>
        /// 数据访问基础类(基于SQLServer)
        /// </summary>
     public abstract class SqlHelper
     {
     //数据库连接字符串(web.config来配置)
      public static readonly string ConnStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
    /// <summary>
            /// 通用分页存储过程
            /// </summary>
            /// <param name="connectionString">连接</param>
            /// <param name="tblName">要显示的表或多个表的连接</param>
            /// <param name="fldName">要显示的字段列表,可为Null,表示*</param>
            /// <param name="pageSize">每页显示的记录个数</param>
            /// <param name="pageIndex">要显示那一页的记录</param>
            /// <param name="fldSort">排序字段列表或条件</param>
            /// <param name="Sort">排序方法,False为升序,True为降序(如果是多字段排列Sort指代最后一个排序字段的排列顺序(最后一个排序字段不加排序标记)--程序传参如:' SortA Asc,SortB Desc,SortC ')</param>
            /// <param name="strCondition">查询条件,不需where,以And开始,可为Null,表示""</param>
            /// <param name="ID">主表的主键</param>
            /// <param name="Disk">是否添加查询字段的 DISTINCT 默认False不添加/True添加</param>
            /// <param name="pageCount">查询结果分页后的总页数</param>
            /// <param name="Counts">查询到的记录数</param>
            /// <param name="strSql">最后返回的SQL语句</param>
            /// <returns>查询当前页的数据集</returns>
            public static DataSet PageList(string connectionString, string tblName, string fldName, int pageSize, int pageIndex,
                string fldSort, bool Sort, string strCondition, string ID, bool Dist,
                out int pageCount, out int Counts, out string strSql)
            {
                SqlParameter[] parameters ={ new SqlParameter("@tblName",SqlDbType.NVarChar,200),
                    new SqlParameter("@fldName",SqlDbType.NVarChar,500),
                    new SqlParameter("@pageSize",SqlDbType.Int),
                    new SqlParameter("@page",SqlDbType.Int),
                    new SqlParameter("@fldSort",SqlDbType.NVarChar,200),
                    new SqlParameter("@Sort",SqlDbType.Bit),
                    new SqlParameter("@strCondition",SqlDbType.NVarChar,1000),
                    new SqlParameter("@ID",SqlDbType.NVarChar,150),
                    new SqlParameter("@Dist",SqlDbType.Bit),
                    new SqlParameter("@pageCount",SqlDbType.Int),
                    new SqlParameter("@Counts",SqlDbType.Int),
                    new SqlParameter("@strSql",SqlDbType.NVarChar,1000)};            parameters[0].Value = tblName;
                parameters[1].Value = (fldName == null) ? "*" : fldName;
                parameters[2].Value = (pageSize == 0) ? int.Parse(ConfigurationManager.AppSettings["PageSize"]) : pageSize;
                parameters[3].Value = pageIndex;
                parameters[4].Value = fldSort;
                parameters[5].Value = Sort;
                parameters[6].Value = strCondition == null ? "" : strCondition;
                parameters[7].Value = ID;
                parameters[8].Value = Dist;
                parameters[9].Direction = ParameterDirection.Output;
                parameters[10].Direction = ParameterDirection.Output;
                parameters[11].Direction = ParameterDirection.Output;            DataSet ds = RunProcedure(connectionString, "PageList", parameters, "ds");            pageCount = (int)parameters[9].Value;
                Counts = (int)parameters[10].Value;
                strSql = parameters[11].Value.ToString();
                return ds;
            }        #region 执行简单SQL语句
            /// <summary>
            /// 获取表某个字段的最大值
            /// </summary>
            /// <param name="FieldName"></param>
            /// <param name="TableName"></param>
            /// <returns></returns>
            public static int GetMaxID(string connectionString, string FieldName, string TableName)
            {
                string strSql = "select max(" + FieldName + ") from " + TableName;
                DataSet ds = Query(connectionString, strSql);
                if (ds.Tables[0].Rows[0][0] != DBNull.Value)
                    return int.Parse(ds.Tables[0].Rows[0][0].ToString());
                else
                    return 0;
            }        /// <summary>
            ///  检测一个记录是否存在(SqlParameter语句方式)
            /// </summary>
            /// <param name="strSql"></param>
            /// <param name="cmdParms"></param>
            /// <returns></returns>
            public static bool Exists(string connectionString, string strSql, params SqlParameter[] cmdParms)
            {
                DataSet ds = Query(connectionString, strSql, cmdParms);
                return int.Parse(ds.Tables[0].Rows[0][0].ToString()) > 0;
            }        /// <summary>
            /// 执行SQL语句,返回影响的记录数
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteSql(string connectionString, string SQLString)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            int rows = cmd.ExecuteNonQuery();
                            return rows;
                        }
                        catch (System.Data.SqlClient.SqlException E)
                        {
                            connection.Close();
                            throw new Exception(E.Message);
                        }
                    }
                }
            }
      

  7.   

    接上面 /// <summary>
            /// 执行SQL语句,返回记录的个数
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteCountSql(string connectionString, string SQLString)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            SqlDataReader dr = cmd.ExecuteReader();
                            dr.Read();
                            int count = int.Parse(dr[0].ToString());
                            return count;
                        }
                        catch (System.Data.SqlClient.SqlException E)
                        {
                            connection.Close();
                            throw new Exception(E.Message);
                        }
                    }
                }
            }        /// <summary>
            /// 执行多条SQL语句,实现数据库事务。
            /// </summary>
            /// <param name="SQLStringList">多条SQL语句</param>
            public static void ExecuteSqlTran(string connectionString, List<string> SQLStringList)
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;
                    SqlTransaction tx = conn.BeginTransaction();
                    cmd.Transaction = tx;
                    try
                    {
                        for (int n = 0; n < SQLStringList.Count; n++)
                        {
                            string strsql = SQLStringList[n].ToString();
                            if (strsql.Trim().Length > 1)
                            {
                                cmd.CommandText = strsql;
                                cmd.ExecuteNonQuery();
                            }
                        }
                        tx.Commit();
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        tx.Rollback();
                        throw new Exception(E.Message);
                    }
                }
            }        /// <summary>
            /// 执行带一个存储过程参数的的SQL语句。
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteSql(string connectionString, string SQLString, string content)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    SqlCommand cmd = new SqlCommand(SQLString, connection);
                    System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.NText);
                    myParameter.Value = content;
                    cmd.Parameters.Add(myParameter);
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        cmd.Dispose();
                        connection.Close();
                    }
                }
            }        /// <summary>
            /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
            /// </summary>
            /// <param name="strSQL">SQL语句</param>
            /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteSqlInsertImg(string connectionString, string strSQL, byte[] fs)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    SqlCommand cmd = new SqlCommand(strSQL, connection);
                    System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@fs", SqlDbType.Image);
                    myParameter.Value = fs;
                    cmd.Parameters.Add(myParameter);
                    try
                    {
                        connection.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                        throw new Exception(E.Message);
                    }
                    finally
                    {
                        cmd.Dispose();
                        connection.Close();
                    }
                }
            }        /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object GetSingle(string connectionString, string SQLString)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(SQLString, connection))
                    {
                        try
                        {
                            connection.Open();
                            object obj = cmd.ExecuteScalar();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (System.Data.SqlClient.SqlException e)
                        {
                            connection.Close();
                            throw new Exception(e.Message);
                        }
                    }
                }
            }        /// <summary>
            /// 执行查询语句,返回SqlDataReader
            /// </summary>
            /// <param name="strSQL">查询语句</param>
            /// <returns>SqlDataReader</returns>
            public static SqlDataReader ExecuteReader(string connectionString, string strSQL)
            {
                SqlConnection connection = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand(strSQL, connection);
                try
                {
                    connection.Open();
                    SqlDataReader myReader = cmd.ExecuteReader();
                    return myReader;
                }
                catch (System.Data.SqlClient.SqlException e)
                {
                    throw new Exception(e.Message);
                }
            }        /// <summary>
            /// 执行查询语句,返回DataSet
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataSet</returns>
            public static DataSet Query(string connectionString, string SQLString)
            {
                if (SQLString != null && SQLString.Trim() != "")
                {
                    using (SqlConnection connection = new SqlConnection(connectionString))
                    {
                        DataSet ds = new DataSet();
                        try
                        {
                            connection.Open();
                            SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                            command.Fill(ds, "ds");
                        }
                        catch (System.Data.SqlClient.SqlException ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        return ds;
                    }
                }
                else
                {
                    return null;
                }
            }        #endregion 执行简单SQL语句
      

  8.   

    接上面#region 执行带参数的SQL语句        /// <summary>
            /// 执行SQL语句,返回影响的记录数
            /// </summary>
            /// <param name="SQLString">SQL语句</param>
            /// <returns>影响的记录数</returns>
            public static int ExecuteSql(string connectionString, string SQLString, params SqlParameter[] cmdParms)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        try
                        {
                            PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                            int rows = cmd.ExecuteNonQuery();
                            cmd.Parameters.Clear();
                            return rows;
                        }
                        catch (System.Data.SqlClient.SqlException E)
                        {
                            throw new Exception(E.Message);
                        }
                    }
                }
            }
            /// <summary>
            /// 执行多条SQL语句,实现数据库事务。
            /// </summary>
            /// <param name="SQLStringList">SQL语句的哈希表(key为sql语句,value是该语句的SqlParameter[])</param>
            public static void ExecuteSqlTran(string connectionString, Hashtable SQLStringList)
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    using (SqlTransaction trans = conn.BeginTransaction())
                    {
                        SqlCommand cmd = new SqlCommand();
                        try
                        {
                            //循环
                            foreach (DictionaryEntry myDE in SQLStringList)
                            {
                                string cmdText = myDE.Key.ToString();
                                SqlParameter[] cmdParms = (SqlParameter[])myDE.Value;
                                PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
                                int val = cmd.ExecuteNonQuery();
                                cmd.Parameters.Clear();
                            }
                            trans.Commit();
                        }
                        catch
                        {
                            trans.Rollback();
                            throw;
                        }
                    }
                }
            }        /// <summary>
            /// 执行一条计算查询结果语句,返回查询结果(object)。
            /// </summary>
            /// <param name="SQLString">计算查询结果语句</param>
            /// <returns>查询结果(object)</returns>
            public static object GetSingle(string connectionString, string SQLString, params SqlParameter[] cmdParms)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        try
                        {
                            PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                            object obj = cmd.ExecuteScalar();
                            cmd.Parameters.Clear();
                            if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                            {
                                return null;
                            }
                            else
                            {
                                return obj;
                            }
                        }
                        catch (System.Data.SqlClient.SqlException e)
                        {
                            throw new Exception(e.Message);
                        }
                    }
                }
            }        /// <summary>
            /// 执行查询语句,返回SqlDataReader
            /// </summary>
            /// <param name="strSQL">查询语句</param>
            /// <returns>SqlDataReader</returns>
            public static SqlDataReader ExecuteReader(string connectionString, string SQLString, params SqlParameter[] cmdParms)
            {
                SqlConnection connection = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand();
                try
                {
                    PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                    SqlDataReader myReader = cmd.ExecuteReader();
                    cmd.Parameters.Clear();
                    return myReader;
                }
                catch (System.Data.SqlClient.SqlException e)
                {
                    throw new Exception(e.Message);
                }        }        /// <summary>
            /// 执行查询语句,返回DataSet
            /// </summary>
            /// <param name="SQLString">查询语句</param>
            /// <returns>DataSet</returns>
            public static DataSet Query(string connectionString, string SQLString, params SqlParameter[] cmdParms)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    SqlCommand cmd = new SqlCommand();
                    PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                    {
                        DataSet ds = new DataSet();
                        try
                        {
                            da.Fill(ds, "ds");
                            cmd.Parameters.Clear();
                        }
                        catch (System.Data.SqlClient.SqlException ex)
                        {
                            throw new Exception(ex.Message);
                        }
                        return ds;
                    }
                }
            }       
      

  9.   

       
    传入连接串和查询 返回结果集
    public static DataTable ExecuteDataTable(string AConnStr, string ASqlString)
        {
          try
          {
            SqlConnection FConnect = new SqlConnection(AConnStr);
            FConnect.Open();
            IDbCommand FCommand = FConnect.CreateCommand();
            FCommand.CommandText = ASqlString;        IDataReader FReader = FCommand.ExecuteReader();
            DataTable FDataTable = new DataTable();
            FDataTable.Load(FReader);
            FReader.Close();
            FConnect.Close();        return FDataTable;
          }
          catch
          {
            return null;
          }
        }