下面的代码将重复记录插入数据库,但这种情况并不经常发生。它在 1/50 记录中创建重复记录
public static int CreateVisit(string connection, Hashtable htParms)
{
int results = 0;
StringBuilder debug = new StringBuilder("EXEC si_Visit");
string delim = "";
using (SqlConnection cn = new SqlConnection(connection))
{
using (SqlCommand cm = new SqlCommand("si_Visit", cn))
{
cm.CommandType = CommandType.StoredProcedure;
cm.CommandTimeout = 999;
foreach (DictionaryEntry dtParm in htParms)
{
string strParmName = "@" + dtParm.Key.ToString();
if (dtParm.Value == null)
cm.Parameters.Add(strParmName, DBNull.Value);
else
cm.Parameters.Add(strParmName, dtParm.Value.ToString());
debug.Append(string.Format("{0} {1}='{2}'", delim, strParmName, dtParm.Value));
delim = ",";
}
try
{
cn.Open();
results = (int)cm.ExecuteScalar();
Console.WriteLine(debug.ToString());
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
cn.Close();
}
return results;
}
每次调用应该只插入一条记录