初学三层架构,在DbHelper类中写了一个Command存储过程的方法
DbHelper  public static int ExecuteCommand(string spName, CommandType ct, params SqlParameter[] values)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = Connection;
            cmd.CommandType = ct;
            cmd.CommandText = spName;
            cmd.Parameters.AddRange(values);
            int result = cmd.ExecuteNonQuery();
            return result;
        }//存储过程已经写好了
然后就数据访问层写插入代码,我写到一半不知道要怎么写?
DAL
  public static int insertAddress(string ReceiveName,string Address,string Post,string Mobile)
      {
          SqlParameter [] paras=new SqlParameter[4];
          paras[0]=new SqlParameter("@ReceiveName",SqlDbType.VarChar,20);
          paras[1]=new SqlParameter("@Address",SqlDbType.VarChar,20);
          paras[2]=new SqlParameter("@Post",SqlDbType.VarChar,20);
          paras[3]=new SqlParameter("@Mobile",SqlDbType.VarChar,20);
          paras[0].Value=ReceiveName;
          paras[1].Value=Address;
          paras[2].Value=Post;
          paras[3].Value=Mobile;
          using (SqlCommand cmd = DBHelper.ExecuteCommand("procInsertAdd", CommandType.StoredProcedure, paras))
          {
             //这里不知道要怎么写了?
          }
      }帮我看看要怎么写啊?

解决方案 »

  1.   

    悲剧..你参考下吧
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    namespace PracticeMyBookShopDAL
    {
        public static class DBHelper
        {        private static SqlConnection connection;
            public static SqlConnection Connection
            {
                get
                {
                    string connectionString = "Data Source=localhost;Initial Catalog=MyBookShop;User ID=sa;password=123456";
                    if (connection == null)
                    {
                        connection = new SqlConnection(connectionString);
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                    return connection;
                }
            }        public static int ExecuteCommand(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                int result = cmd.ExecuteNonQuery();
                return result;
            }        public static int ExecuteCommand(string sql, SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                return cmd.ExecuteNonQuery();
            }        public static int ExecuteCommand(string sql, SqlParameter value)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.Add(value);
                int result = cmd.ExecuteNonQuery();
                return result;
            }
            public static int ExecuteScalar(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                int result = (int)cmd.ExecuteScalar();
                return result;
            }        public static int ExecuteScalar(string sql, SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                int result = (int)cmd.ExecuteScalar();
                return result;
            }        public static int ExecuteScalar(string sql, SqlParameter value)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.Add(value);
                int result = (int)cmd.ExecuteScalar();
                return result;
            }        public static SqlDataReader ExecuteReader(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }        public static SqlDataReader ExecuteReader(string sql, SqlParameter value)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.Add(value);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }        public static SqlDataReader ExecuteReader(string sql, SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }
            public static DataTable GetDataSet(string safeSql)
            {
                DataSet ds = new DataSet();
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                return ds.Tables[0];
            }
            public static DataTable GetDataSet(string safeSql, params SqlParameter[] values)
            {
                DataSet ds = new DataSet();
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                cmd.Parameters.AddRange(values);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                da.Fill(ds);
                return ds.Tables[0];
            }
            public static SqlDataReader GetReader(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }        public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
            {
                SqlCommand cmd = new SqlCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                SqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }
        }
    }
      

  2.   

    你给我的是 dbhelper类啊 ,我 看了有什么用,我的dbhelper已经写出来了,我要的是 在数据访问层里怎么写?还有 web层怎么判断插入成功?
      

  3.   


     using (SqlCommand cmd = DBHelper.ExecuteCommand("procInsertAdd", CommandType.StoredProcedure, paras))
              {
                 //这里不知道要怎么写了?
              }
    //DBHelper.ExecuteCommand 返回的是int
    //直接 return DBHelper.ExecuteCommand("***")web层,看你存储过程怎么写的了
    一种是返回影响行数,判断是否大于0
    一种是如果自增,返回最后生成的自增ID,大于0就OK了
      

  4.   

     public static int AddGame(Game game)
    {
                try
                {     
    SqlParameter[] para = new SqlParameter[]
    {
    new SqlParameter("@gameName", game.GameName),
    new SqlParameter("@gameUrl", game.GameUrl),
    new SqlParameter("@gameDesc", game.GameDesc)
    };                return DBHelper.ExecuteCommand("proc_InsertGame", para);
                }
                catch (Exception e)
                {
    Console.WriteLine(e.Message);
                    throw e;
                }
    }DBHelper.ExecuteCommand执行后返回结果  如果是>0就是成功,<=0就是失败
      

  5.   

    我用的是存储过程,,你可以吧proc_InsertGame写成sql语句
      

  6.   

    int i= DBHelper.ExecuteCommand("procInsertAdd", CommandType.StoredProcedure, paras)
    paras SqlParameter类型的数组