2011-07-21 7 views
0

CSVファイルからデータをストリーミングしてSQL Server 2008にインポートしようとしています。私はウェブを見回しましたが、それは動作していません。それをより良くする方法に関するアイデア(実際には働くという意味で)。WinformsアプリケーションからSqlServer 2008にデータテーブルをアップロードするときに問題が発生する

入力パラメータは、DataTableのCSVデータです。あなたは(そのことについて、または列名)、テーブル名をパラメータ化することはできません

private void ExportCSV(DataTable dtCSV) 
    { 
     DateTime dayOfYear = DateTime.Now.Date; 
     dtCSV.TableName = "ActivationDate_"+dayOfYear.ToString(); 
     string createTempTable = "SELECT * INTO ThisActivation FROM @tvp"; 
     using (SqlDataAdapter adap = new SqlDataAdapter(createTempTable,GetConnection())) 
     { 
      adap.InsertCommand.Parameters.Add("@tvp", SqlDbType.NVarChar, int.MaxValue); 
      adap.InsertCommand.Parameters["@tvp"].Value = dtCSV; 
      adap.InsertCommand.ExecuteNonQuery(); 
     } 
    } 
+0

「それは機能していません」と具体的に説明してください。 http://tinyurl.com/so-hints –

答えて

2

は、ここでは、コードです。

dynamic SQLに戻すオプションが1つありますが、SQL injectionまで開くことができます。

SQLインジェクションを避けるには、dtCSVの検証に非常に注意してください。

string createTempTable = "SELECT * INTO ThisActivation FROM " + dtCSV; 
+0

を参照してください大丈夫...これはどうすればいいですか?コードサンプルへのリンクは大いに感謝されますが、私はグーグルで、それほど使用されていませんが、質問はあまりにも多くのページを通ってトロールせずに有用な情報を得るには広範です – Dani

+0

@Dani - 包括的です。 – Oded

+0

ああshite。私は騒ぎになることを謝ります。ありがとうございました。 – Dani

関連する問題