从存储过程加载 DataGridView

0 c# stored-procedures datagridview

我在将存储过程加载到 DataGridView 中时遇到问题。我已经搜索了一个答案,但是我的代码看起来与我找到的每个答案都相似。存储过程在我添加的另一个 DataGridView 中运行,我将它作为固定数据源包含在其中。我是 C# 的新手。谁能看到我哪里出错了?

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        SqlConnection myConn = new SqlConnection("Data Source=SERVER-SQL1;Initial Catalog=OPSystem;Integrated Security=True");
        myConn.Open();
        SqlCommand myCmd = new SqlCommand("spCustomers", myConn);
        myCmd.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter(myCmd);
        da.Fill(dt);
        dataGridView1.DataSource = da;

    }
Run Code Online (Sandbox Code Playgroud)

Wil*_*ras 6

您不能绑定到 SqlDataAdapter。您需要绑定到数据表。

        DataTable dt = new DataTable();
        SqlConnection myConn = new SqlConnection("Data Source=SERVER-SQL1;Initial Catalog=OPSystem;Integrated Security=True");
        myConn.Open();
        SqlCommand myCmd = new SqlCommand("spCustomers", myConn);
        myCmd.CommandType = CommandType.StoredProcedure;
        SqlDataAdapter da = new SqlDataAdapter(myCmd);
        da.Fill(dt);
        dataGridView1.DataSource = dt;
        dataGridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

对于上下文,SqlDataAdapter

表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。这个类不能被继承。

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter(v=vs.110).aspx