使用C#窗口表单应用程序在用户登录期间保存登录时间

时间:2015-01-26 08:01:56

标签: c# winforms sqlclient

现在我正在尝试使用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
我该怎么做呢。请帮帮我。

1 个答案:

答案 0 :(得分:7)

据我所知,你从不执行你的命令。你需要;

logcmd.ExecuteNonQuery();
添加参数值后

同时使用using statement来处理您的SqlConnectionSqlCommand,而不是手动调用.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值(当然可能} )直接传递到您的datetime或相关类型列。

阅读:DateTime.UtcNow