C# 错误表不存在';我没有主键

C# 错误表不存在';我没有主键,c#,asp.net,sql,.net,datatable,C#,Asp.net,Sql,.net,Datatable,我知道还有很多其他类似的线程,但它们没有帮助。所以我在下面的同一行中得到了一些错误消息- ds.Tables["Customers"].PrimaryKey = new DataColoumn[]{ds.Tables["Customers"].Coloumns["ID"]}; 错误消息如下所示 “找不到类型或命名空间名称'DataColoumn'(您是否缺少使用指令或程序集引用的名称'DataColoumn'” “system.data.datatable不包含列的定义,也不包含接受参数的扩展

我知道还有很多其他类似的线程,但它们没有帮助。所以我在下面的同一行中得到了一些错误消息-

ds.Tables["Customers"].PrimaryKey = new DataColoumn[]{ds.Tables["Customers"].Coloumns["ID"]};
错误消息如下所示

  • “找不到类型或命名空间名称'DataColoumn'(您是否缺少使用指令或程序集引用的名称'DataColoumn'”
  • “system.data.datatable不包含列的定义,也不包含接受参数的扩展方法“Columns”
  • 整个方法如下所示-

     private void GetDataFromDB()
     {
        string CS = ConfigurationManager.ConnectionStrings["AK"].ConnectionString;
        SqlConnection con = new SqlConnection(CS);
        string sqlQuery = "SELECT * from tblScheduledCalls";
        SqlDataAdapter da = new SqlDataAdapter(sqlQuery, con);
    
        DataSet ds = new DataSet();
        da.Fill(ds,"Customers");
    
        ds.Tables["Customers"].PrimaryKey = new DataColoumn[]{ds.Tables["Customers"].Coloumns["ID"]};
    
        Cache.Insert("DATASET", ds, null, DateTime.Now.AddHours(24), System.Web.Caching.Cache.NoSlidingExpiration);
    
        gvCustomers.DataSource = ds;
        gvCustomers.DataBind();
    
        lblMessage.Text = "Data Loaded from Database";
        }
    
    在上面的代码中,我已经在sql mgt studio中将CustomerId声明为标识主键


    好吧,这是一个愚蠢的错误。但是现在有另一个错误在执行时突然出现

    “表没有主键” 在下面的代码中

    protected void gvCustomers_RowUpdating1(object sender, GridViewUpdateEventArgs e)
      {
        if (Cache["DATASET"] != null)
        {
            DataSet ds = (DataSet)Cache["DATASET"];
            DataRow dr = ds.Tables["Customers"].Rows.Find(e.Keys["ID"]);
            dr["Names"] = e.NewValues["Names"];
            dr["ContactNo"] = e.NewValues["ContactNo"];
            dr["Email"] = e.NewValues["Email"];
            dr["City"] = e.NewValues["City"];
            dr["State"] = e.NewValues["State"];
    
            Cache.Insert("DATASET", ds, null, DateTime.Now.AddHours(24), System.Web.Caching.Cache.NoSlidingExpiration);
            gvCustomers.EditIndex = -1;
            GetDataFromCache();
        }
        }
    
    下一行有错误- DataRow dr=ds.Tables[“Customers”].Rows.Find(e.Keys[“ID”])


    我已经在sql mgt studio和上面的GetDataFromDB()方法中将CustomerId设置为identity主键。为什么?

    DataColumn而不是DataColumn这是一个简单的键入错误。如果VS是由Google开发的,您可能会看到“您是指DataColumn吗?”我已经编辑了您的标题。请参见“,而共识是“不,他们不应该”。