初学三层架构,在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))
{
//这里不知道要怎么写了?
}
}帮我看看要怎么写啊?
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))
{
//这里不知道要怎么写了?
}
}帮我看看要怎么写啊?
解决方案 »
- 如何读取自己网站指定web路径的静态htm文件的相应属性?
- 哪个大大有DevExpress.net控件完整下载安装
- 请问下gridview中模板列中的HyperLink的url传递的参数如何跟后台方法绑定。。
- 验证登录的数据存储过程问题!!!第一次用存储过程啊!!!!
- 很都朋友都帮我看了,搞了5天问题依旧,分也没有了,人也绝望了....
- 动态加载主题的问题,asp.2.0开发指南的书有错还是??同志请进
- 关于WebConfig中字符串连接的一个非常棘手的问题!(急)解决就给分
- 关于数据绑定的问题!
- 在webform中的datagrid怎样真正的实现主从表的显示?欢迎讨论!~!!
- 快来看看
- VS2008配置SQL2008数据源时报错连不上,请大侠们帮帮指点一下~~~急
- 根据字段控制显示与否
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;
}
}
}
using (SqlCommand cmd = DBHelper.ExecuteCommand("procInsertAdd", CommandType.StoredProcedure, paras))
{
//这里不知道要怎么写了?
}
//DBHelper.ExecuteCommand 返回的是int
//直接 return DBHelper.ExecuteCommand("***")web层,看你存储过程怎么写的了
一种是返回影响行数,判断是否大于0
一种是如果自增,返回最后生成的自增ID,大于0就OK了
{
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就是失败
paras SqlParameter类型的数组