[英]What method can be used to specifically insert data into your C# DataGridView from SQL?
问题:
代码工作正常,但是,当我启动程序时,我的两个预定义列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
语句中查询的结果相对应。 例如,如果我使用两个课程ID来查询test1
和test2
我更愿意这样做:
Course_ID file_count
test1 234
test2 1478
我已经研究过使用DataPropertyName
属性,但我认为并非如此。
尝试将您的选择更改为:
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结果绑定到当前列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.