2010-09-25 141 views
1

运行时错误无法找到下面列0是我的代码运行时错误“找不到列0”

string connectiostring = (string)ConfigurationSettings.AppSettings["NorthwindConnectionString"]; 
    SqlConnection conn = new SqlConnection(connectiostring); 
    SqlCommand cmd = new SqlCommand("select * from Employees", conn); 
    conn.Open(); 
    SqlDataAdapter adapter = new SqlDataAdapter(cmd); 
    DataSet data = new DataSet(); 
    adapter.Fill(data,"Employees"); 
    data.Tables["Employees"].Columns.Add("Testcolumn"); 
    DataTable t1 = new DataTable("Employees"); 
    DataRow newrow = t1.NewRow(); 
    newrow[0] = "10";\\this the line i am getting error 
    newrow[1] = "Pradeep"; 
    newrow[2] = "Kumar"; 
    data.Tables["Employees"].Rows.Add(newrow); 
    GridView2.DataSource = data; 
    GridView2.DataBind(); 

请帮我 谢谢,

+2

评论都用斜杠,而不是反斜杠制造。 – 2010-09-25 20:17:25

回答

1

我想,也许这其实是你的问题。

DataTable t1 = new DataTable("Employees") 

这创建了一个全新的表格对象,它不是数据集的一部分。

所以,你应该用这个

DataTable t1 = data.Tables["Employees"]

从数据集,点该表中获取表的T1变量来代替它。

6

你还没有添加的列到DataTable

t1.Columns.Add(new DataColumn 
        { 
         DataType = string, 
         ColumnName = "First Name" 
        }); 

对每个列重复此操作,为每个列提供正确的类型。

+0

我可以发誓我看到你回答这之前:) http://stackoverflow.com/questions/3794045/programmatically-populate-datagridview/3794068#3794068 – 2010-09-25 20:13:49

+0

@Hans - 你跟踪我;) – ChrisF 2010-09-25 21:44:34

+0

嗯,是的,看起来,办法。抱歉。实际上检查用户,SO有一个新的政策。请忽略我无用的评论。 – 2010-09-25 21:54:05

2

你需要一些列添加到表第一:

DataTable t1 = new DataTable("Employees"); 
t1.Columns.Add("column1", typeof(string)); 
t1.Columns.Add("column2", typeof(string)); 
t1.Columns.Add("column3", typeof(string)); 

DataRow newrow = t1.NewRow(); 
... 
+0

但是当我试图添加到数据集获取错误'此行已经属于另一个表'。 – Pradeep 2010-09-25 20:17:12

+0

@Pradeep - 您需要向t1添加新行。 – Lee 2010-09-25 20:21:56

4

创建一个函数,试图添加行..请致电InitializeComponents的方法之前增加列..

ex. 
private void InitTbl(DataTable myTbl) 
     { 
      myTbl.Columns.Add(new DataColumn("id")); 
      myTbl.Columns.Add(new DataColumn("fname")); 
      myTbl.Columns.Add(new DataColumn("lname")); 
     } 
相关问题