我正在运行一个VS2013项目,该项目要求我连接并运行SQL Server后端数据库上的存储过程。所以在我的app_code文件夹中,我创建了一个SQLHelper
类:
public class SQLHelper
{
private const string myConnSetting = "zDevConnection";
public DataSet getSQLData(string mySQLStoredProcedure)
{
try
{
DataSet ds = new DataSet();
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[myConnSetting].ConnectionString;
SqlCommand cmd = new SqlCommand(mySQLStoredProcedure);
cmd.CommandType = CommandType.StoredProcedure;
SqlConnection cn = new SqlConnection(connectionString);
cmd.Connection = cn;
SqlDataAdapter ad = new SqlDataAdapter(cmd);
ad.Fill(ds);
return ds;
}
catch (Exception BadSQL)
{
throw BadSQL;
}
}
}
因此,在我的控制器中,我可以调用并“填充”我可以用来做数据集的数据集。
所以
protected DataSet insertBlogEntry()
{
SQLHelper mySQL = new SQLHelper();
return mySQL.getSQLData("mydatabase.MySTPName");
}
我称之为:
DataSet myEntry = insertBlogEntry(model.Email, model.Name, model.Company);
一切都很好,除了存储过程无法正常工作之外,一切正常“好”,例如,如果我尝试插入重复记录,它会抛出一条受控错误消息。
所以我要做的就是陷阱并在我的控制器中返回此错误。我发现我的SQLHelper
类中存在错误,但我不知道如何将此错误返回给我的控制器,该控制器期望数据集而不是字符串。
有人能给我看灯吗?
谢谢, 克雷格
答案 0 :(得分:0)
我是一个狂热的小笨蛋,我应该在try catch块中包装数据集myEntry = ....