行未添加到表中

时间:2015-01-31 11:21:52

标签: c# dataset

DataSet datare=new dataset1(); //global variable  

public partial class main_inherit : sphynx
{         
    public main_inherit():base(@"Data Source=PC5;Initial Catalog=clinic_Main;User ID=sa")
    {
    }
    string constr;
    public override SqlDataReader getval(string query)
    {
        constr = base.connector();
        try
        {
            sqlcon.Open();
            sqlask = new SqlCommand(query, sqlcon);
            rdr = sqlask.ExecuteReader();


        }
        catch { }
        sqlcon.Close();
        return rdr;
    }

    public virtual void  filldata(string text)
    {
        Form2 datare=new Form2();
        DataRow dr=datare.ds.Tables["details"].NewRow();

        dr["id"] = base.valueofstr("select patientid from master_bill1 where transactid='" + text + "' ","patientid");
        dr["name"] = base.valueofstr("select name from cust_det where id='"+dr["id"]+"'", "name");
        dr["billno"] = datare.textBox1.Text;
        dr["paidate"] = base.valueofstr
            ("select paidate from master_bill1 where transactid='"+text+"'","paidate");

        datare.ds.Tables["details"].ImportRow(dr);                
    }
}

该行没有被添加到表中以显示水晶报告有人可以帮助我,我已经尝试在gridview中查看它也显示空行。

1 个答案:

答案 0 :(得分:1)

问题是这一行:

datare.ds.Tables["details"].ImportRow(dr);

没有做任何事情。引用MSDN

"如果作为参数传递的DataRow处于分离状态,则会被忽略,并且不会抛出任何异常。"

Detatched表示它尚未添加到DataTable中。可能你根本不想要ImportRow,而是在表的行集上使用Add。

datare.ds.Tables["details"].Rows.Add(dr);

基本上,ImportRow用于复制现有行并将其附加到表中,而不是添加新行。