尝试在数据集表中插入新行时收到错误

时间:2013-03-09 10:20:22

标签: c# datarow

我在创建datarow对象时遇到错误。

  

对象引用未设置为对象的实例

protected void Button2_Click(object sender, EventArgs e)
    {
        SqlConnection con2 = new SqlConnection("Data Source=AMIT-PC\\SQLEXPRESS;Initial Catalog=Amit;Integrated Security=true");
        con2.Open();
        SqlCommand cmd2 = new SqlCommand("Select * from  hotel.country", con2);

        SqlDataAdapter da2 = new SqlDataAdapter(cmd2);
        SqlCommandBuilder sb = new SqlCommandBuilder(da2);
        DataSet ds2 = new DataSet();
        da2.Fill(ds2);
       /* GridView2.DataSource = ds2;
        GridView2.DataBind();*/

        DataRow dr = ds2.Tables["hotel.country"].NewRow();
        dr[ds2.Tables[TextBox1.Text].Columns[0].ColumnName] = TextBox2.Text;
        dr[ds2.Tables[TextBox1.Text].Columns[1].ColumnName] = TextBox3.Text;
        da2.Update(ds2);
        GridView1.DataBind();

    }

2 个答案:

答案 0 :(得分:0)

您可以创建如下的映射:

da2.TableMappings.Add("Table", "Hotel.Country");

或通过以下方式访问:

ds2.Tables[0].NewRow();

修改

如果您想使用表名,这可能会更容易。

da2.Fill(ds2, "Hotel.Country");

答案 1 :(得分:0)

试试这个...

    DataRow dr = ds2.Tables[0].NewRow();
    dr[ds2.Tables[TextBox1.Text].Columns[0].ColumnName] = TextBox2.Text;
    dr[ds2.Tables[TextBox1.Text].Columns[1].ColumnName] = TextBox3.Text;
    da2.Update(ds2);

可能这可以帮助你......