我想知道如何将存储过程返回的数据直接添加到dataGridview中。
我正在用C#创建一个考勤系统,并通过组合框将Class_Id
和Sub_Id
发送回存储过程,这样我只能看到某个主题的特定类,但我不知道如何将返回的结果直接添加到dataGridView
在屏幕截图中,我将发回Class_Id
和Sub_Id
,以便它仅向我显示在存储过程中具有这些ID的学生。
我在存储过程中执行了查询,并向我显示了指定了Class_id
和Sub_Id
的学生。
这是代码的屏幕截图
答案 0 :(得分:2)
使用适配器填充DataTable
并将DataTable
添加到DataSource
的{{1}}属性中:
DataGridView
如果您的@subid和@classid为DataTable result = new DataTable();
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
SqlDataAdapter adapter = new SqlDataAdapter("StoredProcedureName", conn);
adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand.Parameters.Add("@subid",SqlDbType.Int).Value= comboBox1.SelectedValue;
adapter.SelectedCommand.Parameters.Add("@classid",SqlDbType.Int).Value=comboBox1.SelectedValue;
adapter.Fill(result);
}
dataGridView1.DataSource = result;
,我认为您需要将typeof int
的值转换为ComboBox
。
您可以尝试使用int
甚至更好的Convert.ToInt32(comboBox1.Value)
答案 1 :(得分:0)
这可能对您有帮助。.您可以将我的查询替换为存储过程
Dim con As SqlConnection = New SqlConnection("server = ADITYA\CBOWR; database = adi; integrated security = true;")
Dim cmd As SqlCommand = New SqlCommand()
Dim query As String = "Select * from address"
cmd.Connection = con
cmd.CommandType = CommandType.Text
cmd.CommandText = query
Dim sda As SqlDataAdapter = New SqlDataAdapter(query, con)
Dim ds As DataSet = New DataSet()
con.Open()
sda.Fill(ds)
GridView1.DataSource = ds
GridView1.DataBind()
con.Close()