asp.net三层+调用存储过程问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 16:44:45
我想建个三层的网站
DAL层应该包含2个方法 一个查询的 一个增、删改查的
public static void show(string proName,SqlParameter[] par,string tablename,Dataset ds)
{
SqlConnection con = new SqlConnection("server=.;uid=sa;database=mysjk");
SqlDataAdapter m_sqlda = new SqlDataAdapter(proName,con);
SqlCommand m_sqlcom = m_sqlda.SelectCommand;
m_sqlcom.CommandType = CommandType.StoredProcedure;

if (par!=null)
{
foreach(SqlParameter par in par)
{
m_sqlcom.Parameters.Add(par);
}
}
try
{
m_sqlda.Fill(ds, tablename);
}
catch (SqlException e)
{ }
finally
{
m_sqlcom.Parameters.Clear();
}
}
里面的string tablename是什么参数?假如我用的是

1.string tablename就说形参,程序中是存在DataSet ds内的DataTable的名称,可以为任意内容,就是说适配器m_sqlda将获取的数据注入了ds中的tablename数据表中。
2.下面是我写的一个直接填充数据集的例子,你应该能看懂
SqlConnection conn = new SqlConnection(GetConnectionString.conn());
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure; //指定执行存储过程操作
cmd.CommandText = "STDEquGroup"; //存储过程名称
SqlDataAdapter da = new SqlDataAdapter(cmd); //定义一个数据适配器
DataSet DataSet2 = new DataSet(); //定义一个数据集
da.Fill(DataSet2); //填充数据集
DataTable dt = DataSet2.Tables[0]; //取数据集中的表进行操作
foreach (DataRow dr in dt.Rows)
{
TreeNode tn = new TreeNode();
tn.Text = dr["StrName"].ToString();
tn.Value = dr["IDCode"].ToString();

}
conn.Close();

3.所有存储过程:假定所操作数据库为aaa,表为bbb:
USE [aaa]
GO
CREATE PROCEDURE [dbo].[Select_MaxId]
AS
SELECT MAX(Id) FROM [bbb]

END

格式都类似,最后一句写AS后写sq