如题:大家投票一下自己 如何操作数据库?
注意自己的素养,请不要鄙视任何人的做法。1.硬编码模式,自己动手写ADO.NET对象的使用,自己写sql语句。SqlCommand cmd = new SqlCommand("select * from student", conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
    stu = new Student();
    stu.Name = (string)reader["name"];
}
2.自己不写,用工具生成,如使用模版。但这总方式的结果还是回到了1.硬编码。
请说明使用哪种模版生成器。3.使用封装的数据库访问框架,比如NHibernate,使用方法进行简单CRUD操作。
请说明你用那个框架。4.数据库是做什么用的?

解决方案 »

  1.   

    数据库操作类sqlhepler
    动软代码生成器
    codesmith
    框架spring.net,LINQ,NHibernate
    ORM
    数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合
      

  2.   

    1.硬编码模式,自己动手写ADO.NET对象的使用,自己写sql语句。sqlserver   mysql   access    sqlite   xml   excel  text
      

  3.   

    底层强类型的DataSet结合ObjectDataSource
      

  4.   

    using namespace.DataSetTableAdapters;
    [System.ComponentModel.DataObject]
    [System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select, true)]
      

  5.   

    一般都是sqlhelper
    然后自己再写modelusing System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace Model
    {
        public class Users
        {
            private int id;
            private string name;
            private string password;
            private string realname;
            private string lastip;
            private DateTime lastvisit;
            private int times;
            private int group;
            private string email;
            private string phone;        public int ID
            {
                get
                {
                    return id;
                }
                set
                {
                    id = value;
                }
            }        public string Name
            {
                get
                {
                    return name;
                }
                set
                {
                    name = value;
                }
            }        public string Password
            {
                get
                {
                    return password;
                }
                set
                {
                    password = value;
                }
            }        public string Realname
            {
                get
                {
                    return realname;
                }
                set
                {
                    realname = value;
                }
            }        public string Lastip
            {
                get
                {
                    return lastip;
                }
                set
                {
                    lastip = value;
                }
            }        public DateTime Lastvisit
            {
                get
                {
                    return lastvisit;
                }
                set
                {
                    lastvisit = value;
                }
            }        public int Times
            {
                get
                {
                    return times;
                }
                set
                {
                    times = value;
                }
            }        public int Group
            {
                get
                {
                    return group;
           
                }
                set
                {
                    group = value;
                }
            }        public string Email
            {
                get
                {
                    return email;
                }
                set
                {
                    email = value;
                }
            }        public string Phone
            {
                get
                {
                    return phone;
                }
                set
                {
                    phone = value;
                }
            }
        }
    }
        然后再一个操作数据库的类
    dataaccess  public string AddUser(string Name,string Password,string Realname,int Group,string Email,string Phone )
            {
                string result = "";
                SqlParameter[] MyPara = new SqlParameter[6];
                MyPara[0] = new SqlParameter("@Name", Name);
                MyPara[1] = new SqlParameter("@Password", Password);
                MyPara[2]=new SqlParameter("@Realname",Realname);
                MyPara[3]=new SqlParameter("@Group",Group);
                MyPara[4]=new SqlParameter("@Email",Email);
                MyPara[5]=new SqlParameter("@Phone",Phone);
                try
                {
                    SqlHelper.ExecuteNonQuery(SqlStr.xskjConnectString,CommandType.Text,SqlStr.sql_AddUser,MyPara);
                    result="添加成功!";
                }
                catch(Exception e)
                {
                    result=e.ToString();
                }
                return result;
                
            }
            public bool UpdateUser(Model.Users users)
            {            bool result = false;
                SqlParameter[] MyPara = new SqlParameter[6];
                MyPara[0] = new SqlParameter("@Password", users.Password);
                MyPara[1] = new SqlParameter("@Realname", users.Realname);
                MyPara[2] = new SqlParameter("@Group", users.Group);
                MyPara[3] = new SqlParameter("@Email", users.Email);
                MyPara[4] = new SqlParameter("@Phone", users.Phone);
                MyPara[5] = new SqlParameter("@ID", users.ID);
                int rs = SqlHelper.ExecuteNonQuery(SqlStr.xskjConnectString, CommandType.Text, SqlStr.sql_UpdateUser, MyPara);
                if (rs > 0)
                {
                    result = true;
                }
                return result;
            }        public bool DeleteUser(string id)
            {
                bool result = false;
                SqlParameter[] MyPara = new SqlParameter[1];
                MyPara[0] = new SqlParameter("@ID", id);
                int rs = SqlHelper.ExecuteNonQuery(SqlStr.xskjConnectString, CommandType.Text, SqlStr.sql_DeleteUser, MyPara);
                if (rs > 0)
                {
                    result = true;
                }
                return result;
                
            }
      

  6.   

    自己做的一个Helper,在配置文件中修改一个值就能切换不同的数据库,目前支持三种:
    MsSql,MySql,Access
    摘部分如下:
    private DbHelper()
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("JiuJiu.DbAccess.xml");
                XmlElement root = doc.DocumentElement;
                XmlNode node = root.SelectSingleNode("/JiuJiu.DbAccess/DbType");
                string dataType = node.InnerText;
                node = root.SelectSingleNode("/JiuJiu.DbAccess/DbConnections/DbConnection[Name='" + dataType+"']");
                string providerName = node["ProviderName"].InnerText;
                string connectionString = node["ConnectionString"].InnerText;
                DbProviderFactory factory = DbProviderFactories.GetFactory(providerName);
                connection = factory.CreateConnection();
                connection.ConnectionString = connectionString;
                command = factory.CreateCommand();
                command.Connection = connection;
                adapter = factory.CreateDataAdapter();
            }
      

  7.   

    dbHelp  动软 生成model
      

  8.   

    数据库操作类sqlhepler 
    只熟悉这个。
      

  9.   

    找单位专门写SQL的人。呵呵!
      

  10.   

    linq and dataset and sqlhelper
      

  11.   

    1.硬编码模式,自己动手写ADO.NET对象的使用,自己写sql语句不过,我都是自己封装一下。做个简单工厂模式,以区分不同的数据库的特性一些的方法与属性。
      

  12.   

    4.数据库是做什么用的?
    数据库是做数据库用的.sqlhelper
      

  13.   

     我还处于第一种,自己写了一个比较完善的类!然后SQL语句也不用写了,直接知道表名和字段名就行了!不过感觉就自己会用,别人还真难看懂,想改也不知道怎么改!
      

  14.   

    SQLHelper微软企业库:
    Microsoft.Practices.EnterpriseLibrary.Common.dll
    Microsoft.Practices.EnterpriseLibrary.Data.dll
    Microsoft.Practices.ObjectBuilder2.dll
    Microsoft.Practices.Unity.dll
      

  15.   

    Enterprise Library复杂的还是用这个。简单的用生成工具就可以了。
    ___________________________________
    我写的vs2005源代码管理器
    http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html
      

  16.   

    动软生成CRUD
    别的自己写sql,调用动软的DbHelperSQL
      

  17.   

    1 或者 LINQ  框架 还要封装一遍 怕性能不好。
      

  18.   

    第一种,自己写了一个类,不用写SQL语句了
      

  19.   

    数据库操作类sqlhepler 
    框架
      

  20.   

    Enterprise Library 
    自己寫。
    server2005 
      

  21.   

    好像大家使用 硬编码的模式比较多啊。还有用Linq的我好想没说到,
    因为linq比较针对查询哈,
    其他的操作,支持欠佳。
    大家说说用的是什么linq啊(听的很别扭)。。还有没有尝试过ADO.NET Entity Framework 的?
      

  22.   

    自己写个简单的ORM,想怎么改就怎么改
      

  23.   

    最近用 Linq To Entity
      

  24.   

      硬编码  +  工具生成    想问大家System.Data.Common.DbProviderFactory 还是 System.Data.SqlClient;  我比知道用System.Data.Common.DbProviderFactory 影响多少性能?