【问题标题】:Getting Object reference not set to an instance of an object exception, when using SQLDataAdapter with SQL Functions将 SQLDataAdapter 与 SQL 函数一起使用时,未将对象引用设置为对象异常的实例
【发布时间】:2013-01-13 14:21:53
【问题描述】:

我正在尝试将 SQL 函数与 SQLDataAdabter 一起使用,但是当我运行我的应用程序时出现此异常:

对象引用未设置为对象的实例

在那一行:

adbtr.SelectCommand.CommandType = CommandType.Text;

当我删除该行时,我得到了相同的异常,但在后面的行中:

adbtr.SelectCommand.CommandText = "SELECT * FROM Select_gallery_names_FN()";

这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{

    DataSet dst = new DataSet();
    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString))
    {
        SqlDataAdapter adbtr = new SqlDataAdapter();
        adbtr.SelectCommand.CommandType = CommandType.Text;
        adbtr.SelectCommand.CommandText = "SELECT * FROM Select_gallery_names_FN()";
        try
        {
            int result = adbtr.Fill(dst);
            if (result == 0)
            {
                return;
            }
            cat_repeater.DataSource = dst;
            cat_repeater.DataBind();
        }
        catch(Exception ex)
        {
            Response.Write(ex.Message);
        }

    }

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 你的表名是Select_gallery_names_FN() ?
  • 你两次设置SelectCommand的值是什么?
  • 它不是一个表,它是一个内联表值函数,它正在破坏,因为你没有它前面的模式。如果您使用的是默认架构,请尝试“Select * From dbo.Select_gallery_names_FN()”
  • 我很想看看函数的内容。您没有传递任何变量,所以您不能使用视图是否有特殊原因?
  • @Brian 啊,我没看到,反正它没有任何意义,因为它还没有被初始化,但我明白你在说什么。

标签: c# asp.net sql exception sqldataadapter


【解决方案1】:

你需要初始化SelectCommand.. 在你设置属性时它是null

SqlDataAdapter adbtr = new SqlDataAdapter();
adbtr.SelectCommand = new SqlCommand("SELECT * FROM Select_gallery_names_FN()");
adbtr.SelectCommand.CommandType = CommandType.Text;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 2013-12-30
    • 2012-08-08
    • 1970-01-01
    相关资源
    最近更新 更多