我正在将CSV文件导入到SQL Server
我从Internet上获得了代码..工作正常但是当我将一个额外的字段(User_Id)与该CSV文件添加到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";
答案 0 :(得分: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,@User_id)";
答案 1 :(得分: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);
试试这个;希望它能奏效。
答案 2 :(得分:0)
值(@ Name,@ Email,@ Mobile," + UserId +")" //来自你的来源
avoid ''+ UserId +'' in your string strSql..