具体的正宗做法是怎么做?
我感觉这么做的话,跟vb,delphi都差不多了。
写程序的时候很简单,但写完以后感觉不够专业。
专业的应该怎么写?
能举例说明就更好了。

解决方案 »

  1.   


    没有最好 只有更好
    不同的项目、不同的架构也不相同
    通常的做法是
    1、通过ORM组件、结合SQL、SP、VIEW来实现
    2、完全SQL、SP、VIEW来实现, APP端执行即可(尤其是在大型项目开发设计中)
    3、动态的拼合SQL(尽量避免)保持各层清晰为最佳
      

  2.   

    mvc 结构  一般简单的分三层
    sql一般写在数据层 一般有增删改查四个方法然后再业务层调用数据层的方法  然后在代码隐藏文件(.cs)里调用业务层的方法执行操作    代码隐藏文件里不要出现sql语句 它只传递参数 
      

  3.   

    分层吗
    你开发的时候没有分层的概念吗
    表现层,逻辑层,数据层
    winform和webform都是适用的啊
      

  4.   

    有些还是要硬编码的
    有些可以利用反射,SQL代码写在配置文件中
      

  5.   

    操作数据库主要是用sql语句进行操作.在.NET里执行SQL语句有三种方法.
    第一种:拼SQL语句
    第二种:参数化SQL语句
    第三种:用存储过程
    下下是例子
    第一种:
    string sql = "select * from user where user ="+ userName ";        
    第二种:    
          string sql = "select * from user where user = @username ";
          SqlConnection myConnection = new SqlConnection(connStr);
          SqlCommand myCommand = new SqlCommand(sql, myConnection);
          myCommand.Parameters.Add(new SqlParameter("@username",SqlDbType.VarChar,50));
          myCommand.Parameters["@username"].Value = userName;
     
     第三种:  SqlConnection myConnection = new SqlConnection(connStr);
          SqlCommand myCommand = new SqlCommand("sql", myConnection); //sql是存储过程
          myCommand.CommandType = CommandType.StoredProcedure;
          myCommand.Parameters.Add(new SqlParameter("@username",SqlDbType.VarChar,50));
          myCommand.Parameters["@username"].Value = userName;
    个人推荐使用第三种.
      

  6.   

    数据层:
    class DataLayer
        {
            private SqlConnection sqlCon;
            public DataLayer()
            {
                sqlCon = new SqlConnection("server=.;uid=sa;password=;database=CargoData");
            }        public DataSet sql_selectData(string sqlString) //查询方法
            {
                SqlDataAdapter sqlDapt = new SqlDataAdapter(sqlString, sqlCon);
                DataSet ds = new DataSet();
                sqlDapt.Fill(ds);
                return ds;
            }
    }业务层:
    class OperationLayer
    {
        public OperationLayer() { }
        public string getAge(string Name)
        {
            DataLayer dl=new DataLayer();
            DataSet ds=new DataSet();
            ds=dl.sql_selectData("select Age from Users where UserName='"+Name+"'");
            return ds.Tables[0].Rows[0][0].ToString();
        }
    }代码隐藏文件(.cs):
    private void button_Click(object sender, EventArgs e)
            {
                OperationLayer OL=new OperationLayer();
                this.lable.Text=OL.getAge(this.textbox.Text);
            }代码比较简单  没做异常 判断等;  数据少就不要用dataset了 占内存