【问题标题】:System.Data.DataRowView instead of real valuesSystem.Data.DataRowView 而不是实际值
【发布时间】:2013-03-15 12:31:44
【问题描述】:

我有以下代码。当我运行程序并使用参数运行一次存储过程时,例如223,然后我使用参数运行它,例如 315 ant,然后再次使用参数运行它,我得到 System.Data.DataRowView”而不是实际值。你能帮我解决以下问题吗?

private void GetServers()
    {
        IDBManager dbManager = new DBManager (DataProvider.SqlServer);
        dbManager.ConnectionString = @"Data Source=server; Initial Catalog=base;  Integrated Security = SSPI;";

        try
        {
            dbManager.Open();
            dbManager.CreateParameters(1);
            dbManager.AddParameters(0,"@report_id", (txtReportID.Text));
            DataSet ds = new DataSet("Servers");
            ds = dbManager.ExecuteDataSet(CommandType.StoredProcedure, "sp_get_servers_from_report_test");              
            if (ds.Tables[0].Rows.Count > 0)
            {

                chkdListBoxServers.DataSource = ds.Tables[0];
                chkdListBoxServers.DisplayMember = "Servers";
                chkdListBoxServers.ValueMember = "server_name";                 
            }
            else
            {
                MessageBox.Show("No servers or incorrect report id");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
        finally
        {
            dbManager.Dispose();
        }
    }

【问题讨论】:

  • 我猜chkdListBoxServers.DisplayMember = "server_name"; 会很好。
  • 有效!谢谢你的帮助。
  • 会将其作为答案发布。

标签: c#


【解决方案1】:

我想chkdListBoxServers.DisplayMember = "server_name"; 会很好。

【讨论】:

  • Wiktor 的解决方案对我有用。我想知道为什么 DisplayMember 属性必须设置为与 ValueMember 属性相同?对我来说很奇怪,我只能运行存储的程序两次,然后它就停止正常工作。感谢有人可以向我解释。提前致谢。
【解决方案2】:

用此代码替换

//DataSet ds = new DataSet("Servers"); //delete this

            var ds = dbManager.ExecuteDataSet(CommandType.StoredProcedure, "sp_get_servers_from_report_test");              

【讨论】:

  • 它不起作用 :( 我还注意到,当我尝试使用第三个参数执行该过程时,它还会返回 System.Data.DataRowView” 而不是实际值
猜你喜欢
  • 1970-01-01
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 2011-10-18
  • 2021-10-17
  • 2014-04-28
  • 1970-01-01
  • 2021-05-14
相关资源
最近更新 更多