2017-12-14 12 views
0

SQL Server 테이블에 데이터를 DataGridView에 난 오류가 발생?채우기 내가 SQL Server 테이블의 데이터가있는 DataGridView를 채우기 위해 노력하고있어

private void BlackListLoad() 
{ 
     DataTable dt = new DataTable(); 
     SqlCommand cmd = new SqlCommand(); 
     BindingSource bs = new BindingSource(); 

     var table = dt; 
     var connection = 
      @"Data Source=someone-someone\SQLEXPRESS;Initial Catalog=test;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"; 

     using (var con = new SqlConnection { ConnectionString = connection }) 
     { 
      if (con.State == ConnectionState.Closed) 
      { 
       con.Open(); 
      } 

      try 
      { 
       cmd.CommandText = @"SELECT * FROM [dbo].[Blacklist1]"; 
       table.Load(cmd.ExecuteReader()); 

       bs.DataSource = table; 
       ListGrid.ReadOnly = true; 
       ListGrid.DataSource = bs; 
      } 
      catch (SqlException ex) 
      { 
       MessageBox.Show(ex.Message + " sql query error."); 
      } 
     } 
} 
+0

'con.Open();'을 열어야합니다. 그리고 당신은 반대로, 그것을 닫으려고합니다. –

답변

2

SqlCommand에 연결을 지정하지 않았습니다! 그것이 당신이 이것을 할 필요가있다라고 말하는 것에 따라. 리더를 실행하기 바로 전에 다음을 수행하여이 문제를 해결할 수 있습니다.

cmd.Connection = con;.

자세한 내용은 여기를 읽어

: 새로운 연결 객체와

con.Open();

, 당신이 할 : 당신이 해결 될 수있는 연결을 개방하지 않는 것 또한 보이는 https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.connection(v=vs.110).aspx

그것이 열려 있지 않은지 검사 할 필요가 없습니다.

+0

성명서가 엉망인 경우에도 도움을 주신 귀하의 답변에 감사드립니다. – Luka

+0

지금 문제가 해결 되었습니까? – Jaxi

+0

그래도 문제가 해결되면 누군가 고정 코드를 사용하면 유용 할 것입니다. – Luka

0

이렇게 해보십시오.

using System; 
using System.Data; 
using System.Windows.Forms; 
using System.Data.SqlClient; 

namespace WindowsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      string connectionString = "Data Source=.;Initial Catalog=pubs;Integrated Security=True"; 
      string sql = "SELECT * FROM Authors"; 
      SqlConnection connection = new SqlConnection(connectionString); 
      SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection); 
      DataSet ds = new DataSet(); 
      connection.Open(); 
      dataadapter.Fill(ds, "Authors_table"); 
      connection.Close(); 
      dataGridView1.DataSource = ds; 
      dataGridView1.DataMember = "Authors_table"; 
     } 
    } 
}