从简单表查询,一个主键ID列,一个NAME列。DataSet ds = new DataSet();DataRow dr = this.FindRow(ds,"Product",1) as DataRow;this.TextBox1.Text = dr["ID"].ToString();
this.TextBox2.Text = dr["Name"].ToString();public object FindRow(DataSet dataSet,string tableName,object primarykey)
{
object rowEntity = null;
try
{
string condition = string.Format(" SELECT * FROM {0} ",tableName);
SqlDataAdapter adapter = new SqlDataAdapter(condition,this.connection);
adapter.Fill(dataSet,tableName);
rowEntity = dataSet.Tables[tableName].Rows.Find(primarykey);
}
catch
{
throw;
}
return rowEntity;
}不改动方法。 哪里错了呢?ID表里有。
提示的就是表没有主键。
知道的告诉下,谢谢了。

解决方案 »

  1.   

    需要设置一下dataSet.Tables[0].PrimaryKey ,然后再用rowEntity = dataSet.Tables[tableName].Rows.Find(primarykey);
      

  2.   

    LS的兄弟,应该怎么写?dataSet.Tables[0].PrimaryKey  是个列数组对象
      

  3.   

    rowEntity = dataSet.Tables[tableName].Rows.Find(primarykey);
    ---------------------------------------------------------------- 
    DataColumn dc = dataSet.Tables[tableName].Columns["productid"];
                DataColumn[] dcs = new DataColumn[1] ;
                dcs[0] = dc;
                dataSet.Tables[tableName].PrimaryKey = dcs;
    --------测试通过