现在我正在尝试使用C#窗口窗体桌面应用程序来获取用户日志 我试过了
private void btn_Login_Click(object sender, EventArgs e)
{
string username = txt_Username.Text;
string password = txt_Password.Text;
if (username=="" && password=="")
{
MessageBox.Show("Please enter Username and Password");
}
else
{
Function.sqlfunction.connection.Open();
string query = "adminlogin";
SqlCommand cmd = new SqlCommand(query, Function.sqlfunction.connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@pass_word", password);
int usercount = (Int32)cmd.ExecuteScalar();
if (usercount == 1)
{
string loginsert = "INSERT INTO tbl_loguser (username, loginTime) VALUES (@username,@time)";
SqlCommand logcmd = new SqlCommand(loginsert, Function.sqlfunction.connection);
logcmd.CommandType = CommandType.Text;
logcmd.Parameters.AddWithValue("@username", username);
logcmd.Parameters.AddWithValue("@time", DateTime.Now.ToString());
Form next = new frm_Discount();
next.Show();
this.Hide();
}
else
{
MessageBox.Show("LoginId or Password Is wrong"); //if user Name is not available in database
}
Function.sqlfunction.connection.Close();
}
}
我可以进入我的应用程序,没有数据保存到tbl_logusers
我该怎么做呢。请帮帮我。
答案 0 :(得分:7)
据我所知,你从不执行你的命令。你需要;
logcmd.ExecuteNonQuery();
添加参数值后。
同时使用using
statement来处理您的SqlConnection
和SqlCommand
,而不是手动调用.Close()
方法。
不再使用AddWithValue
了。 It may generate unexpected results。使用.Add()
method或它的重载。
using(SqlConnection con = new SqlConnection(conString))
using(SqlCommand cmd = con.CreateCommand())
{
// Set your CommandText propert of your query.
// Add your parameter values with SqlParameterCollection.Add() method
// Open your connection.
// Execute your query.
}
我强烈怀疑您尝试将DateTime
值保存为time
列中的字符。别这么做!将您的DateTime.Now
值(当然可能3>} )直接传递到您的datetime
或相关类型列。