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"]};
错误消息如下所示
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吗?”我已经编辑了您的标题。请参见“,而共识是“不,他们不应该”。