ASP.NET MVC3 利用存储过程实现查询功能的问题
publicDataSetusuSelProc(stringstorename,stringConn,string[]strParams,object[]strValue...
public DataSet usuSelProc(string storename, string Conn, string[] strParams, object[] strValues)
{
DataSet ds = new DataSet();
SqlConnection MyConn = new SqlConnection(StaticDataConnClass.getSQLDataConn(Conn));
try
{
if ((strParams != null) && (strParams.Length != strValues.Length))
{
ds = null;
}
else
{
MyConn.Open();
SqlDataAdapter MyAd = new SqlDataAdapter(storename, MyConn);//设置SQL命令
MyAd.SelectCommand.CommandType = CommandType.StoredProcedure;//调用存储过程
if (strParams != null)
{
for (int i = 0; i < strParams.Length; i++)
MyAd.SelectCommand.Parameters.AddWithValue(strParams[i], strValues[i]);
}
SqlParameter rst = MyAd.SelectCommand.Parameters.Add("@result", SqlDbType.Int);
rst.Direction = ParameterDirection.Output;
MyAd.Fill(ds, "newtable");
}
}
catch
{
ds = null;
}
finally
{
MyConn.Close();
MyConn.Dispose();
}
return ds;
}
以上代码为按照设定条件string[] strParams,和你输入符合条件的值object[] strValues来进行查询的一个利用存储过程查询SQL SERVER的通用方法。我在视图层输入正确的数值可以查询到相应的信息,但是我输入错误的数值时,程序在在另外一个调用该方法的类中报异常,说是为null。所以我想问一下,上面的方法输入的是错误的值时,返回的ds是空值吗?还有下面这部分代码不知道什么意思
MyConn.Open();
SqlDataAdapter MyAd = new SqlDataAdapter(storename, MyConn);//设置SQL命令
MyAd.SelectCommand.CommandType = CommandType.StoredProcedure;//调用存储过程
if (strParams != null)
{
for (int i = 0; i < strParams.Length; i++)
MyAd.SelectCommand.Parameters.AddWithValue(strParams[i], strValues[i]);
}
SqlParameter rst = MyAd.SelectCommand.Parameters.Add("@result", SqlDbType.Int);
rst.Direction = ParameterDirection.Output;
MyAd.Fill(ds, "newtable"); 展开
{
DataSet ds = new DataSet();
SqlConnection MyConn = new SqlConnection(StaticDataConnClass.getSQLDataConn(Conn));
try
{
if ((strParams != null) && (strParams.Length != strValues.Length))
{
ds = null;
}
else
{
MyConn.Open();
SqlDataAdapter MyAd = new SqlDataAdapter(storename, MyConn);//设置SQL命令
MyAd.SelectCommand.CommandType = CommandType.StoredProcedure;//调用存储过程
if (strParams != null)
{
for (int i = 0; i < strParams.Length; i++)
MyAd.SelectCommand.Parameters.AddWithValue(strParams[i], strValues[i]);
}
SqlParameter rst = MyAd.SelectCommand.Parameters.Add("@result", SqlDbType.Int);
rst.Direction = ParameterDirection.Output;
MyAd.Fill(ds, "newtable");
}
}
catch
{
ds = null;
}
finally
{
MyConn.Close();
MyConn.Dispose();
}
return ds;
}
以上代码为按照设定条件string[] strParams,和你输入符合条件的值object[] strValues来进行查询的一个利用存储过程查询SQL SERVER的通用方法。我在视图层输入正确的数值可以查询到相应的信息,但是我输入错误的数值时,程序在在另外一个调用该方法的类中报异常,说是为null。所以我想问一下,上面的方法输入的是错误的值时,返回的ds是空值吗?还有下面这部分代码不知道什么意思
MyConn.Open();
SqlDataAdapter MyAd = new SqlDataAdapter(storename, MyConn);//设置SQL命令
MyAd.SelectCommand.CommandType = CommandType.StoredProcedure;//调用存储过程
if (strParams != null)
{
for (int i = 0; i < strParams.Length; i++)
MyAd.SelectCommand.Parameters.AddWithValue(strParams[i], strValues[i]);
}
SqlParameter rst = MyAd.SelectCommand.Parameters.Add("@result", SqlDbType.Int);
rst.Direction = ParameterDirection.Output;
MyAd.Fill(ds, "newtable"); 展开
2个回答
展开全部
错误的数值当然 会报异常了呀
上面的方法输入的是错误的值时,返回的ds是空值吗 ,是的
if (strParams != null)
{
for (int i = 0; i < strParams.Length; i++)
MyAd.SelectCommand.Parameters.AddWithValue(strParams[i], strValues[i]); //设置存储过程 的参数和值
}
SqlParameter rst = MyAd.SelectCommand.Parameters.Add("@result", SqlDbType.Int);
rst.Direction = ParameterDirection.Output; //存储过程的 output参数 @result
MyAd.Fill(ds, "newtable"); //把结果集放到 ds中去
上面的方法输入的是错误的值时,返回的ds是空值吗 ,是的
if (strParams != null)
{
for (int i = 0; i < strParams.Length; i++)
MyAd.SelectCommand.Parameters.AddWithValue(strParams[i], strValues[i]); //设置存储过程 的参数和值
}
SqlParameter rst = MyAd.SelectCommand.Parameters.Add("@result", SqlDbType.Int);
rst.Direction = ParameterDirection.Output; //存储过程的 output参数 @result
MyAd.Fill(ds, "newtable"); //把结果集放到 ds中去
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询