如何从select table中为现有表

时间:2016-08-16 17:42:47

标签: ms-access-2007 c#-3.0

实际上我创建了一个数据库应用程序,如果第一天登录,那么他的sales_count将是1,同一个人再次登录,然后其sales_count将是2,同一用户登录第二天那么它的sales_count又一次。

为此,我创建了两个表LoginSales_Details。登录时我有:

  

User_name,密码和唯一编号。

现在,在sales_details我想从登录详细信息中仅提取User_nameUnique_no,但同时我想在sales_count表中增加sales_details今天也更新日期。

Sales_details有

  

Sales_id,User_name,Unique_No,Sales_count,To_Date字段

实际上我试过但如果To_date为null则没有任何反应,那么今天在sales_details中将date + sales_count插入为1

下面我粘贴了我的整个代码:

string todaydate = DateTime.Now.ToString("dd/MM/yyyy");
string access = "select To_Date from Sales_Details";
cmd = new OleDbCommand(access, con);
con.Open();
using (OleDbDataReader read = cmd.ExecuteReader()){
    while (read.Read()){
       string date2 = read["To_Date"].ToString();
       if (todaydate == date2){
           cmd = new OleDbCommand("update Sales_Details set Sales_count= IIF(IsNull(Sales_count), 0, Sales_count) + 1, [To_Date]=Date() where [Unique_No]=@Unique_No", con);
           cmd.Parameters.AddWithValue("@Unique_No", txtinput.Text);
           con.Open();
           int n = cmd.ExecuteNonQuery();
           if (n == 0) {
               MessageBox.Show("Invalid Unique No.");
           } else {
               this.DialogResult = DialogResult.OK;
           }
           con.Close();
      } else {
           int counter=1;
           cmd = new OleDbCommand("insert into Sales_Details select User_name,Unique_No from Login where Unique_No=@Unique_No Union select ISNULL(Sales_Count+1,0) as [@Sales_Count],DATE() AS [To_date]", con);
           cmd.Parameters.AddWithValue("@Unique_No", txtinput.Text);
           cmd.Parameters.AddWithValue("@Sales_count",counter);
           int n1 = cmd.ExecuteNonQuery();
           if (n1 == 0){                                                            
               MessageBox.Show("Invalid Unique No.");
           } else {
               this.DialogResult = DialogResult.OK;
           }
           }
      }
 }
 con.Close();

0 个答案:

没有答案