복붙노트

[SQL] C #에서 데이터베이스에 여러 매개 변수를 추가

SQL

C #에서 데이터베이스에 여러 매개 변수를 추가

여기를 향해 뭔가 simulair을 찾고 있어요 : 어떻게 문장의 "INSERT INTO dbo.Blah"부분을 반복하지 않고 여러 행을 삽입 할 수 있습니까? 한 쿼리에서이 일을 향한뿐만 아니라 (빨리 다음 수십) 나는 또한 입력이 웹에서 온다 파라미터이 작업을 수행 할 것을 제외하고.

현재 내가 가지고

foreach(string data in Scraper){
            SqlConnection conn = new SqlConnection(WebConfigurationManager.AppSettings["ConnectionInfo"].ToString());
            string query = "INSERT INTO DATABASE('web',@data)";
            SqlCommand sqlCommand= new SqlCommand(query, conn);
            sqlCommand.Parameters.AddWithValue("@data", data);
            Command.executeNonQuery(); 
            conn.close();
}

이는 부진 비트입니다 (실제 예를 참고하여 더 많은 열이 있지만 그 일을 더 혼란스럽게 만들 것입니다).

해결법

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

    1.당신은 C # 및 SQL 서버 2008을 사용하고 있기 때문에, 당신은 당신의 데이터베이스에 여러 행을 삽입 할 테이블 반환 매개 변수를 사용할 수 있습니다. 다음은이 작업을 수행하는 방법에 대한 간단한 설명입니다 :

    당신은 C # 및 SQL 서버 2008을 사용하고 있기 때문에, 당신은 당신의 데이터베이스에 여러 행을 삽입 할 테이블 반환 매개 변수를 사용할 수 있습니다. 다음은이 작업을 수행하는 방법에 대한 간단한 설명입니다 :

    첫째, 당신은 사용자 정의 테이블 형식을 생성해야합니다 :

    CREATE TYPE MyTableType AS TABLE
    (
        Col1 int,
        Col2 varchar(20) 
    )
    GO
    

    그런 다음 매개 변수로이 테이블 유형을 받아 저장 프로 시저를 작성해야

    CREATE PROCEDURE MyProcedure
    (
        @MyTable dbo.MyTableType READONLY -- NOTE: table valued parameters must be Readonly!
    )
    AS
    
    INSERT INTO MyTable (Col1, Col2)
    SELECT Col1, Col2 
    FROM @MyTable
    
    GO
    

    마지막으로, C # 코드에서이 저장 프로 시저를 실행합니다 :

    DataTable dt = new DataTable();
    dt.Columns.Add("Col1", typeof(int));
    dt.Columns.Add("Col2", typeof(string));
    
    // Fill your data table here
    
    using (var con = new SqlConnection("ConnectionString"))
    {
        using(var cmd = new SqlCommand("MyProcedure", con))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@MyTable", SqlDbType.Structured).Value = dt;
            con.Open();
            cmd.ExecuteNonQuery();
        }
    }
    
  2. ==============================

    2.당신은 SQL 구문을 사용할 수있다 :

    당신은 SQL 구문을 사용할 수있다 :

    INSERT INTO YOUR_TABLE (dataColumn) VALUES (data1),(data2),(data3)
    

    쿼리로 행 삽입 및 APPEND 싶어 "(DATAX)"를 통해 루프 그래서도하면 해당 매개 변수를 추가합니다. 아마 도움이됩니다.

  3. from https://stackoverflow.com/questions/31965233/adding-multiple-parameterized-variables-to-a-database-in-c-sharp by cc-by-sa and MIT license