0

我有一个DataSet.xsd文件,在这个文件中我有两个,DataTable一个是Bill,另一个是BillInfo现在,我正在编写这段代码

string qry = "Select * from BillInfo where [BillNumber]='" +txtbill.Text + "' and [Session]='"+CLS.ses+"'";
        OleDbDataAdapter da = bm.returnDataAdaptor(qry);
        DataSet ds1 = new DataSet();
        da.Fill(ds1);
        DataSets.Bill ds = new DataSets.Bill();
        da.Fill(ds);
        DataTable Dt1 = ds1.Tables[0];
        DataTable dt = ds.Tables.Add("BillInfo");
        dt.Columns.Add("BillNumber", Type.GetType("System.String"));
        dt.Columns.Add("CustomerName", Type.GetType("System.String"));
        dt.Columns.Add("City", Type.GetType("System.String"));
        dt.Columns.Add("Mobile", Type.GetType("System.String"));
        dt.Columns.Add("TotalAmount", Type.GetType("System.String"));
        dt.Columns.Add("Packing", Type.GetType("System.String"));
        dt.Columns.Add("Tax", Type.GetType("System.String"));
        dt.Columns.Add("Transport", Type.GetType("System.String"));
        dt.Columns.Add("Additional", Type.GetType("System.String"));
        dt.Columns.Add("PaybleAmount", Type.GetType("System.Int32"));
        dt.Columns.Add("Session", Type.GetType("System.String"));
        dt.Columns.Add("Date1", Type.GetType("System.DateTime"));
        dt.Columns.Add("Naration", Type.GetType("System.String"));
        dt.Columns.Add("AmountWord", Type.GetType("System.String"));
        dt.Columns.Add("Status", Type.GetType("System.String"));
        dt.Columns.Add("Balance", Type.GetType("System.Int32"));

        for (int i = 0; i < Dt1.Rows.Count; i++)
        {
            DataRow r = dt.NewRow();
            r["BillNumber"] = Dt1.Rows[i][0];
            r["CustomerName"] = Dt1.Rows[i][1];
            r["City"] = Dt1.Rows[i][2];
            r["Mobile"] = Dt1.Rows[i][3];
            r["TotalAmount"] = Dt1.Rows[i][4];
            r["Packing"] = Dt1.Rows[i][5];
            r["Tax"] = Dt1.Rows[i][6];
            r["Transport"] = Dt1.Rows[i][7];
            r["Additional"] = Dt1.Rows[i][8];
            r["PaybleAmount"] = Dt1.Rows[i][9];
            r["Session"] = Dt1.Rows[i][10];
            r["Date1"] = Dt1.Rows[i][11];
            r["Naration"] = Dt1.Rows[i][12];
            r["AmountWord"] = Dt1.Rows[i][13];
            r["Status"] = Dt1.Rows[i][14];
            r["Balance"] = Dt1.Rows[i][15];
            dt.Rows.Add(r);
        }
        string qry1 = "Select * from BillDetails where [BillNumber]='" + txtbill.Text + "'";
        OleDbDataAdapter da1 = bm.returnDataAdaptor(qry1);
        DataSet ds2 = new DataSet();
        da.Fill(ds2);
        da.Fill(ds);
        DataTable Dt2 = ds2.Tables[0];
        DataTable dt2 = ds.Tables.Add("Bill");
        dt2.Columns.Add("BillNumber", Type.GetType("System.String"));
        dt2.Columns.Add("ProductCode", Type.GetType("System.String"));
        dt2.Columns.Add("ProductName", Type.GetType("System.String"));
        dt2.Columns.Add("productSize", Type.GetType("System.String"));
        dt2.Columns.Add("ProductQuantity", Type.GetType("System.String"));
        dt2.Columns.Add("ProductWeight", Type.GetType("System.String"));
        dt2.Columns.Add("Unit", Type.GetType("System.String"));
        dt2.Columns.Add("ProductPrice", Type.GetType("System.String"));
        dt2.Columns.Add("Amount", Type.GetType("System.String"));
        dt2.Columns.Add("Date1", Type.GetType("System.DateTime"));
        for (int i = 0; i < Dt2.Rows.Count; i++)
        {
            DataRow r = dt.NewRow();
            r["BillNumber"] = Dt2.Rows[i][0];
            r["ProductCode"] = Dt2.Rows[i][1];
            r["ProductName"] = Dt2.Rows[i][2];
            r["productSize"] = Dt2.Rows[i][3];
            r["ProductQuantity"] = Dt2.Rows[i][4];
            r["ProductWeight"] = Dt2.Rows[i][5];
            r["Unit"] = Dt2.Rows[i][6];
            r["ProductPrice"] = Dt2.Rows[i][7];
            r["Amount"] = Dt2.Rows[i][8];
            r["Date1"] = Dt2.Rows[i][9];
            dt2.Rows.Add(r);
        }

但在r["ProductCode"] = Dt2.Rows[i][1];它显示一个例外。那就是Column 'ProductCode' does not belong to table BillInfo.请解决我的错误。

4

2 回答 2

2

代替

DataRow r = dt.NewRow();

DataRow r = dt2.NewRow();

您只是使用了没有列的错误表ProductCode。它必须是“Bill”而不是“BillInfo”。

除此之外:

当您使用文本框作为 sql 查询的输入时,您可以进行 sql 注入。改用参数。

http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbparameter.aspx

于 2013-01-31T10:58:27.780 回答
0

答案很清楚Column 'ProductCode' does not belong to table BillInfo,相反我可以看到 Column 'ProductCode' is in BillDetails

于 2013-01-31T11:02:59.573 回答