[WebMethod]
public string Login(string Username, string Password)
{
String result;
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Nicole Wong\Desktop\Inari Tracking System\Inari Tracking System\App_Data\Database1.mdf;Integrated Security=True;User Instance=True");
con.Open();
SqlCommand cmd = new SqlCommand("SELECT Username, Password from UserData where Username = @Username AND Password = @Password", con);
cmd.Parameters.AddWithValue("@UserName", Username);
cmd.Parameters.AddWithValue("@Password", Password);
cmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter(cmd);
// Create an instance of DataSet.
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count> 0)
{
DateTime dt = DateTime.Now;
SqlCommand cmd1 = new SqlCommand("INSERT INTO ActivityLog (CreateOn, CreateBy) VALUES (@CreateOn,@CreateBy)", con);
cmd1.Parameters.AddWithValue("@CreateOn", dt);
cmd1.Parameters.AddWithValue("@CreateBy", Username);
cmd1.ExecuteNonQuery();
SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
// Create an instance of DataSet.
DataSet ds1 = new DataSet();
da1.Fill(ds);
con.Close();
result = "Successful";
return result;
}
else
{
result = "Fail";
return result;
}
Это мой простой веб-метод для хранения времени входа пользователя в базу данных.Двойные данные в базе данных
Проблема заключается в том, что данные дважды сохраняются в базе данных. Например, я вхожу в систему, затем он возвращает успешное, но я проверил базу данных, там есть две одинаковые записи, сохраненные с теми же данными. Я запускаю с точкой останова, но нет никакого дублирования, код работает хорошо по строкам.
Любая идея? Спасибо заранее
Почему вы используете 'SqlDataAdapter' и' ExecuteNonQuery' вместе для одной и той же команды? –
Извините, что я новичок в этом, есть проблема, когда я использую оба? @ un-lucky – Alois
@Alois да, вот почему вы получаете дублирование. '.ExecuteNonQuery()' запускает вставку один раз, а затем 'da1.Fill (ds);' снова запускает вставку. Вы делаете то же самое на своем выборе, кстати, вы выполняете как запросы, так и как незапросы, когда select - это запрос, а вставка - это запрос. – Andrew