界面上有很多textbox,我点击button,然后把textbox的值插入数据库这insert语句是写在button的方法里?如:protected void button1_Click(object sender, EventArgs e)
    {
        string sql="insert ....";
    }还是写在数据层,然后在方法里调用?如果是调用数据层的方法,怎么调用?

解决方案 »

  1.   

    如果是三层的话,一般写数据层,通过Medel提取所需参数,并调用SQLHelper
      

  2.   

    调用:
    product为数据层类名 
    InsertImage 为静态方法名
     Product.InsertImage(newProductId, upImage.FileContent);
      

  3.   

    楼主,下载个petshop去看看就明白了,应该写在那里,应该怎么调用。
      

  4.   

    using System.IO;
    using System.Data;
    using System.Data.SqlClient;
    using System.Web.Configuration;
    using System.Collections.Generic;    public class Product
        {
       public static void InsertImage(int id, Stream upload)
            {}}
     如果看不懂就得好好看C#的书了      
      

  5.   

    Insert写在数据层,我一向认为用TableAdapter封装数据层是个非常省力的好办法
      

  6.   

    sql语句写在数据层的,业务逻辑处理才放在逻辑层
      

  7.   

    using 数据层的namespaceleiming lei = new leiming();
    lei.caozuo();
      

  8.   

    具体分为三层;业务层,数据处理层,用户层,model层。sql语句写在数据层的
      

  9.   

    protected void button1_Click(object sender, EventArgs e) 
        {传递的参数什么的都省略了
            a(); 
        }逻辑层
    a()
    {业务逻辑在此处理
      string sql="insert ...."; 
      b(sql);
    }持久层
    b()
    {
      具体的数据库连接打开等等一系列动作...
    }大概就这样吧
      

  10.   


    数据层 我的命名是 Sql.Util 在该命名空间内写了所有Sql语句。
      

  11.   

    三层架构是: model view controler语句是写在类文件里的.class文件中,然后从button方法中调用就OK了
      

  12.   

    对了,改正一下,sql语句拼装在持久层里面,逻辑层只传参数进去
      

  13.   

    三层架构,分为表现层,业务逻辑层和持久层,跟MVC有什么关系