怎么将vs中的程序同步到sql中的表中

img


这是一个登录窗口,然后想要将登录的信息(无论成功或失败)同步到sql创建的表中,每登录一次表中的数据就随着更新一次,然后将登录日志保存到指定文档中

在程序中写insert插入数据库。你的程序已经实现了这个功能,但是你的代码有点问题就是你执行insert前执行了mysqlcon.close(),这是不对的,这个只需要在finally里面就可以。else分支里面也需要执行insert操作。另外你的程序还报什么错吗?

string username = textBox1.Text; 
string userpwd = textBox2.Text; 
string time=DateTime.Now.ToString(); 
string mycon = "Server=.;user=sa;pwd=123456;database=SiasunTest";
SqlConnection mysqlcon = new SqlConnection(mycon); 
mysqlcon.Open(); 
string a = "Select * from [User] where name='" + username + "' and pwd='" + userpwd + "'"; 
SqlCommand mycom = new SqlCommand(a,mysqlcon); 
SqlDataReader mydr = mycom.ExecuteReader(); 
//更新到SQL数据库中的表中 
try {
    bool flag = mydr.Read();
    mydr.Close();
    if(flag) { 
        MessageBox.Show("成功登录"); 
        string B = $"insert into [User](name, time) values('{username}','{time}')"; 
        SqlCommand sqlCommand = new SqlCommand(B,mysqlcon); 
        sqlCommand.ExecuteNonQuery(); 
    } else { 
        MessageBox.Show("登录失败,请重新登录");
        string B = $"insert into [User] (name, time) values('{username}','{time}')"; 
        SqlCommand sqlCommand = new SqlCommand(B,mysqlcon); 
        sqlCommand.ExecuteNonQuery();
        textBox1.Clear(); 
        textBox2.Clear(); 
        textBox1.Focus(); 
    }
} catch (Exception ex) {
    MessageBox.Show(ex.Message.ToString()); 
    Console.WriteLine(ex.Message.ToString());
} finally { 
    mysqlcon.Close();
}

如果有用,望采纳,谢谢!

我怀疑你是在保存之前出错了,导致没有插入数据,

你贴的代码,应该包含插入那块,目前你那边还缺失。

你的INSERT语句有语法错误,正确的INSERT语句格式是这样的:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...); 

注意: 是 INSERT INTO ...

所以,你的对应应该类似这样:

string B = $"insert into [User](name, time)values('{username}','{time}')";

在操作数据库时,需要保持与数据库的连接,所以把下图中的两条语句去掉:

img