没有错误显示,当我按插入时,将显示“已成功保存记录”消息,但数据库中未显示数据。
我在做什么错了?
mEqualizer = new Equalizer(0, mPlayer.getAudioSessionId());
插入语句
<receiver android:name=".receivers.AudioSessionReceiver">
<intent-filter>
<action android:name="android.media.action.OPEN_AUDIO_EFFECT_CONTROL_SESSION"/>
</intent-filter>
</receiver>
答案 0 :(得分:0)
这是一种处理逻辑的更简洁的方法。它将处理异常,数据库连接,并且查询已参数化。所有这三个都是您发布的代码中的主要问题。我宁愿在按钮单击事件中直接看到数据层,而不是逻辑,但这对于正常工作并不重要。我什至不会使用您拥有的那个DBConnection类。没有很多工作就无法挽救的漏洞太多了。
private void btnInsert_Click(object sender, EventArgs e)
{
try
{
if (Validation())
{
if (IfUsernameExists(txtUsername.Text))
{
MessageBox.Show("Username already exists!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["YourConnectionString"].ConnectionString))
{
conn.Open();
string sql = "INSERT INTO[Users](name, email, username, password, role, dob, address) VALUES(@Name, @Email, @username, @password, @role, @dob, @address)";
using (var cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50).Value = txtName.Text;
cmd.Parameters.Add("@Email", SqlDbType.VarChar, 50).Value = txtEmail.Text;
cmd.Parameters.Add("@username", SqlDbType.VarChar, 50).Value = txtUsername.Text;
cmd.Parameters.Add("@password", SqlDbType.VarChar, 50).Value = txtPassword.Text; //This really needs to be salted and hashed instead of plain text!!!!
cmd.Parameters.Add("@role", SqlDbType.VarChar, 50).Value = cbRole.Text;
cmd.Parameters.Add("@dob", SqlDbType.DateTime).Value = dtDob.Value;
cmd.Parameters.Add("@address", SqlDbType.VarChar, 50).Value = txtAddress.Text;
cmd.ExecuteNonQuery();
}
}
MessageBox.Show("Record Saved Succesfully!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
Clear_Data();
LoadData();
}
}
}
catch(Exception ex)
{
//Log the error here so you have a record of it.
//Maybe even send an email that something failed
MessageBox.Show(ex.ToString(), "An error occurred.", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
由于配置文件中没有连接(尽管应该),因此可以将其用于连接。
using (SqlConnection conn = new SqlConnection(@"Data Source=PC-67\SQLEXPRESS;Initial Catalog=PayrollDB;Integrated Security=True;"))