以前得到DataSet的时候都是利用直接写sql语句(适合初学者,希望没有误导你们),例如:
public static DataSet GetDs(string sqlstr)
{
ds = new DataSet();
sqlconn = new SqlConnection();
sqlconn.ConnectionString = System.Configuration.ConfigurationManager.AppSettings["connstr"];
sqlconn.Open();
SqlDataAdapter da = new SqlDataAdapter(sqlstr, sqlconn);
da.Fill(ds);
ConnClose();
return ds;
}
其中sqlstr我是直接传进去的sql语句。这样虽然也能得到想要的结果,但是毕竟直接写入sql语句被普遍认为是不好的做法。所以我以后就都是用了存储过程。
我用了两种形式调用存储过程,下面直接给出代码比较直观点:第一种
public bool DelRole(string rolename)
{
try
{
SqlConnection sqlConn = new SqlConnection();
sqlConn.ConnectionString = System.Configuration.ConfigurationManager.AppSettings["connstr"];
sqlConn.Open();
SqlCommand sqlComm = new SqlCommand("DelRole", sqlConn);//DelRole为存储过程名
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.Parameters.Add(new SqlParameter("@rolename", SqlDbType.VarChar, 50));
sqlComm.Parameters[0].Value = rolename;
sqlComm.ExecuteNonQuery();
sqlConn.Close();
return true;
}
catch(Exception ex)
{
return false;
}
}
上面代码就是从建立链接到调用存储过程的过程,我之前只是用这种方式去执行存储过程,并不用它返回值,我要得到DataSet是用下面方式得到的:第二种:
public DataSet DriverNameDetail(int driverid)
{
string sqlstr;
DataSet ds = new DataSet();
sqlstr = "exec driver_carslist " + driverid;//driver_carslist为存储过程名,driverid为传入参数
ds = conn.GetDs(sqlstr);
return ds;
}
这样便可以返回一个dataset,其中GetDs(sqlstr)为本文的第一段代码。
下面是我直接用第一种方法得到DataSet:
SqlConnection sqlConn = new SqlConnection();
sqlConn.ConnectionString = System.Configuration.ConfigurationManager.AppSettings["connstr"];
sqlConn.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter("GetAuthListByRole", sqlConn);
sqlDa.SelectCommand.CommandType = CommandType.StoredProcedure;
sqlDa.SelectCommand.Parameters.Add(new SqlParameter("@rolename", SqlDbType.VarChar, 50));
sqlDa.SelectCommand.Parameters[0].Value = roleName;
sqlDa.Fill(ds);
sqlConn.Close();
return ds;
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
我用了两种形式调用存储过程,下面直接给出代码比较直观点:第一种
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
下面是我直接用第一种方法得到DataSet:
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)