将数据表值分配给变量

时间:2013-01-28 02:52:28

标签: c# dataset

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

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

我得到一个回复​​,即位置1没有排。任何想法?

4 个答案:

答案 0 :(得分:1)

我对你想要的东西感到有点困惑;

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

    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开头)

答案 1 :(得分:0)

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

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

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

“Column”是您的实际列名。

答案 2 :(得分: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);
          }
      }

答案 3 :(得分:0)

它表示名为RateTable的数据表不包含任何带有行位置1的行。

实际上它代表的是

object o=dataset.tables[0].[rownumber][columnnumber/"columnname"];