1

我试图将一个变量从 Visual C# 中的数据源传递给一个变量,但代码没有返回任何值。
我用来提取值的代码是:

object o = rateTableDBDataSet1.Tables["RateTable"].Rows[1][0];

我得到的回报是位置 1 没有行。有什么想法吗?

4

4 回答 4

1

我对你想要什么有点困惑;

如果要将数据表的结构和数据复制到另一侧,请尝试 Copy 方法:

    System.Data.DataTable tb = new System.Data.DataTable();
    System.Data.DataTable tb2 = new System.Data.DataTable();
    object obj = new object();

    obj = tb.Copy();//adding to obj if you want....
    tb2 = tb.Copy();// of to another table without carrying the reference

编辑:

根据您的评论,这是您想要的示例:

        DataSet rateTableDBDataSet1 = new DataSet();
        //ds = whatever your data is comming from

        bool doesItHaveData = rateTableDBDataSet1.Tables["RateTable"].Rows.Count > 0;

        if (doesItHaveData)
        {
            object col1row1 = rateTableDBDataSet1.Tables["RateTable"].Rows[0][0];
            object col2row1 = rateTableDBDataSet1.Tables["RateTable"].Rows[0][1];

            object col1row2 = rateTableDBDataSet1.Tables["RateTable"].Rows[1][0];
        }

您当前的错误可能是因为没有非 2 条数据记录的数据(您正在访问第 1 行并且索引以 0 开头)

于 2013-01-28T03:01:16.533 回答
0

它说您命名RateTable的数据表不包含任何行位置为 1 的行。

其实它的代表方式是

object o=dataset.tables[0].[rownumber][columnnumber/"columnname"];
于 2014-02-08T09:17:04.390 回答
0
      public static decimal opcomm { get; set; }
      public static decimal opcommPercentage { get; set; }


      public static void SetOpCommission()
      {
          using (DataBaseClass dataclass = new DataBaseClass())
          {

              dataclass.Connect();

              string sql = @"SELECT  EmployeeComission, EmployeeComissionPercentage,MobileKindId,Id,StartDate FROM EmployeeCommission";

              opcomm = (decimal)dataclass.ExecuteScalar(sql);
              opcommPercentage = (decimal)dataclass.ExecuteScalar(sql);
          }
      }
于 2014-01-08T12:37:21.587 回答
0

首先,您需要弄清楚为什么“RateTable”中没有第二行。

通常,您获取列值的代码是正确的。但是,通常最好按名称访问列。如果列的顺序发生变化,这更具可读性并且不易出错:

object o = rateTableDBDataSet1.Tables["RateTable"].Rows[0]["Column"]

其中“Column”是您的实际列名。

于 2013-01-28T03:29:36.913 回答