我试图将一个变量从 Visual C# 中的数据源传递给一个变量,但代码没有返回任何值。
我用来提取值的代码是:
object o = rateTableDBDataSet1.Tables["RateTable"].Rows[1][0];
我得到的回报是位置 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 开头)
它说您命名RateTable
的数据表不包含任何行位置为 1 的行。
其实它的代表方式是
object o=dataset.tables[0].[rownumber][columnnumber/"columnname"];
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);
}
}
首先,您需要弄清楚为什么“RateTable”中没有第二行。
通常,您获取列值的代码是正确的。但是,通常最好按名称访问列。如果列的顺序发生变化,这更具可读性并且不易出错:
object o = rateTableDBDataSet1.Tables["RateTable"].Rows[0]["Column"]
其中“Column”是您的实际列名。