복붙노트

[SQL] SQL Server 데이터베이스에서 DataTable을 채우기

SQL

SQL Server 데이터베이스에서 DataTable을 채우기

이것은 나를 위해 신비, 나는 그것을 반환하는 데이터 테이블이 비어있는 내 경우에, 다른 사람을했다 코드를 알고

CONSTR는 글로벌 문자열로 설정 한 연결 문자열입니다

public DataTable fillDataTable(string table)
    {
        string query = "SELECT * FROM dstut.dbo." +table;

        SqlConnection sqlConn = new SqlConnection(conSTR);
        sqlConn.Open();
        SqlCommand cmd = new SqlCommand(query, sqlConn);

        DataTable dt = new DataTable();
        dt.Load(cmd.ExecuteReader());
        sqlConn.Close();
        return dt;
    }

EDIT 1 요점은 나중에에 TabControl에 데이터 그리드 뷰에서이 테이블을 보여주는 것입니다, 여기에에 대한 질문은 TabControl에 C #에서 여러 데이터 테이블을 표시

여기에 단지의 나에게 빈 DataGridView를 보여

EDIT 2 모두 시도, 나는 테이블을 표시하려고하면 DataGridView를가 비어있는 오른쪽 행의 양하지만 지금은 값이

해결법

  1. ==============================

    1.변수 테이블 (공백 등) 잘못된 문자가 포함 된 경우에는 변수 대괄호를 추가해야합니다.

    변수 테이블 (공백 등) 잘못된 문자가 포함 된 경우에는 변수 대괄호를 추가해야합니다.

    public DataTable fillDataTable(string table)
    {
        string query = "SELECT * FROM dstut.dbo.[" + table + "]";
    
        using(SqlConnection sqlConn = new SqlConnection(conSTR))
        using(SqlCommand cmd = new SqlCommand(query, sqlConn))
        {
            sqlConn.Open();
            DataTable dt = new DataTable();
            dt.Load(cmd.ExecuteReader());
            return dt;
        }
    }
    

    그런데, SQL 인젝션에 열려 있기 때문에 이러한 종류의 코드에 매우주의해야합니다. 나는 테이블 이름은 사용자의 입력에서 오지 않는 당신을 위해 희망

  2. ==============================

    2.다음과 같이하십시오 :

    다음과 같이하십시오 :

    public DataTable fillDataTable(string table)
        {
            string query = "SELECT * FROM dstut.dbo." +table;
    
            SqlConnection sqlConn = new SqlConnection(conSTR);
            sqlConn.Open();
            SqlCommand cmd = new SqlCommand(query, sqlConn);
            SqlDataAdapter da=new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            da.Fill(dt);
            sqlConn.Close();
            return dt;
        }
    

    이 도움이됩니다 바랍니다.

  3. from https://stackoverflow.com/questions/16958155/fill-datatable-from-sql-server-database by cc-by-sa and MIT license