C# Asp插入错误
我是Asp.net新手,我尝试从文件中读取数据并存储到数据库 文件格式为:(读数为测试,良好)C# Asp插入错误,c#,asp.net,.net,sql-server,C#,Asp.net,.net,Sql Server,我是Asp.net新手,我尝试从文件中读取数据并存储到数据库 文件格式为:(读数为测试,良好) 您能否识别错误I'm lost plz您正在循环,每次循环运行时都添加新参数。因此,第二次和后续调用将失败 可以为每个循环设置新的命令参数,也可以只创建一次参数,然后为每个循环重新分配这些参数 这里是第二个选项—重用相同的参数—它在循环场景中的性能会更好,正如您所看到的: var connexion = new SqlConnection(@"Data Source=..."); v
您能否识别错误I'm lost plz您正在循环,每次循环运行时都添加新参数。因此,第二次和后续调用将失败 可以为每个循环设置新的命令参数,也可以只创建一次参数,然后为每个循环重新分配这些参数 这里是第二个选项—重用相同的参数—它在循环场景中的性能会更好,正如您所看到的:
var connexion = new SqlConnection(@"Data Source=...");
var command = connexion.CreateCommand();
var requete = "INSERT INTO commande VALUES(@idpr,@date)";
// I've assumed the types - double check
var paramidprod = new SqlParameter("@idpr", SqlDbType.VarChar);
var paramdate = new SqlParameter("@date", SqlDbType.DateTime);
command.Parameters.Add(paramidprod);
command.Parameters.Add(paramdate);
command.CommandText = requete;
connexion.Open();
foreach (string line in lines)
{
if (line.Contains('*')) break;
String[] l = line.Split(';');
paramidprod.Value = line.Substring(0,2);
paramdate.Value = l[1];
command.ExecuteNonQuery();
}
connexion.Close();
connexion.Dispose();
如果您插入了大量的记录,您也可以考虑每隔1000个插入提交事务。
请注意,在每次迭代中,您都将相同的参数插入到
foreach (string line in lines)
{
command.Parameters.Clear();
var connexion = new SqlConnection(@"Data Source=...");
var command = connexion.CreateCommand();
var requete = "INSERT INTO commande VALUES(@idpr,@date)";
// I've assumed the types - double check
var paramidprod = new SqlParameter("@idpr", SqlDbType.VarChar);
var paramdate = new SqlParameter("@date", SqlDbType.DateTime);
command.Parameters.Add(paramidprod);
command.Parameters.Add(paramdate);
command.CommandText = requete;
connexion.Open();
foreach (string line in lines)
{
if (line.Contains('*')) break;
String[] l = line.Split(';');
paramidprod.Value = line.Substring(0,2);
paramdate.Value = l[1];
command.ExecuteNonQuery();
}
connexion.Close();
connexion.Dispose();
foreach (string line in lines)
{
command.Parameters.Clear();