问题:
但是,当我启动程序时,我的两个预定义列Course_ID
和File_Count
出现在当时空白的dataGridView中,代码工作正常。还有一个空的默认行。
每当我运行我的查询时,我的dataGridView就会得到一个额外的列和一个额外的行。查询的结果进入第一行的新的第三列,这很奇怪。
见这里:
这是我的代码:
string[] courses = txtBoxCourses.Text.Split(',');
SqlConnection myConnection = new SqlConnection("user id=userid;" +
"password=password;server=myserver;" +
"Trusted_Connection=no;" +
"connection timeout=30");
myConnection.Open();
SqlCommand myCommand = new SqlCommand();
SqlDataAdapter adapter = new SqlDataAdapter(myCommand);
myCommand.Connection = myConnection;
DataTable t = new DataTable();
foreach (string line in courses)
{
myCommand.CommandText = "DECLARE @CourseName varchar(80); Set @CourseName = '"+line+"' SELECT COUNT(*) FROM ( SELECT FILE_ID,PARENT_ID ,PATH_ID,FULL_PATH ,FILE_NAME FROM BBLEARN_cms_doc.dbo.XYF_URLS WHERE FULL_PATH like '/courses/'+@CourseName+'/%') as subquery;";
adapter.Fill(t);
dataGridView1.DataSource = t;
}
我想要做的是用我的string[] courses
列表中的值填充第一列,并希望它与我的foreach
语句中的查询结果相对应。例如,如果我使用两个课程‘d来查询、test1
和test2
,我更喜欢这样:
Course_ID file_count
test1 234
test2 1478
我已经研究过使用DataPropertyName
属性,但我不认为是这样的。
发布于 2014-06-04 09:49:29
尝试将选择更改为:
SELECT @CourseName as Course_ID, COUNT(*) as File_Count FROM (
SELECT FILE_ID,PARENT_ID ,PATH_ID,FULL_PATH ,FILE_NAME FROM BBLEARN_cms_doc.dbo.XYF_URLS
WHERE FULL_PATH like '/courses/'+@CourseName+'/%') as subquery;
当前查询返回的是整数,网格视图没有将其附加到任何预定义列。尝试将列与网格视图中的列名混叠。这应该将sql结果绑定到当前列。
https://stackoverflow.com/questions/24044067
复制相似问题