0

SQL Server への CSV ファイルのインポートに取り組んでいます

インターネットからコードを取得しました..正常に動作していますが、そのCSVファイルを使用して1つの余分なフィールド(User_Id)をSQLに追加すると、エラーが発生します....どこが間違っているのか理解できません....コード... DataTable tblReadCSV = new DataTable();

            tblReadCSV.Columns.Add("Name");
            tblReadCSV.Columns.Add("Email");
            tblReadCSV.Columns.Add("Mobile");

            tblReadCSV.Columns.Add("User_id");
            string path = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);

            FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Email/UploadFile/" + path));
            path = Server.MapPath("~/Email/UploadFile/" + path);
            TextFieldParser csvParser = new TextFieldParser(path);
             csvParser.Delimiters = new string[] { "," };
            csvParser.TrimWhiteSpace = true;
            csvParser.ReadLine();

            while (!(csvParser.EndOfData == true))
            {
                tblReadCSV.Rows.Add(csvParser.ReadFields());
            }
            string strCon = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
            string strSql = "Insert into Contacts(Name,Email,Mobile,User_id ) values(@Name,@Email,@Mobile," + UserId +")";
            SqlConnection con = new SqlConnection(strCon);
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = strSql;
            cmd.Connection = con;               
            cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50, "Name");
            cmd.Parameters.Add("@Email", SqlDbType.VarChar, 50, "Email");
            cmd.Parameters.Add("@Mobile", SqlDbType.VarChar, 50, "Mobile");

            cmd.Parameters.Add("@User_id", SqlDbType.Int , UserId);

            SqlDataAdapter dAdapter = new SqlDataAdapter();
            dAdapter.InsertCommand = cmd;
            int result = dAdapter.Update(tblReadCSV);
            Label1.Text = "File successfully uploaded";
4

3 に答える 3

0

values(@Name,@Email,@Mobile," + UserId +")"// ur c からのソース

avoid ''+ UserId +'' in your string strSql..
于 2014-08-20T12:17:36.767 に答える
0

交換

string strSql = "Insert into Contacts(Name,Email,Mobile,User_id)
values(@Name,@Email,@Mobile," + UserId +")";

string strSql = "Insert into Contacts(Name,Email,Mobile,User_id )
values(@Name,@Email,@Mobile,@UserId)";

上記の行では、パラメーターを宣言しているだけです。

そして、これは実際に現在のユーザー ID を渡す方法です。

cmd.Parameters.Add("@User_id", SqlDbType.Int , UserId);

これを試して; それがうまくいくことを願っています。

于 2013-05-27T15:49:08.583 に答える