从存储过程调用c#返回错误代码

时间:2015-07-13 16:15:41

标签: c# sql-server asp.net-mvc visual-studio-2013 error-handling

我正在运行一个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类中存在错误,但我不知道如何将此错误返回给我的控制器,该控制器期望数据集而不是字符串。

有人能给我看灯吗?

谢谢, 克雷格

1 个答案:

答案 0 :(得分:0)

我是一个狂热的小笨蛋,我应该在try catch块中包装数据集myEntry = ....