c# - 我如何得到 System.FormatException:“输入字符串的格式不正确。” 在 C# 中执行 SqlCommand 时?
问题描述
private void Form2_Load(object sender, EventArgs e)
{
String source = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Szabolcs\Documents\Adatbázis Kezelés3.mdf;Integrated Security=True;Connect Timeout=30";
SqlConnection con = new SqlConnection(source);
con.Open();
// Exception here
String sqlSelectQuery = "SELECT * FROM [Table] WHERE Username = "
+ int.Parse(label1.Text);
SqlCommand cmd = new SqlCommand(sqlSelectQuery, con);
SqlDataReader dr = cmd.ExecuteReader();
if ( dr.Read() )
{
label3.Text = dr["Wins"].ToString();
}
con.Close();
}
数据库图片 我该如何解决这个错误?
解决方案
Username
是字符串列,需要给'
字符串文本值加上撇号
尝试:
String sqlSelectQuery = "SELECT * FROM [Table] WHERE Username = '" +label1.Text+"'";
最好使用 SqlParamaters 以获得更高的安全性
String sqlSelectQuery = "SELECT * FROM [Table] WHERE Username = @UserName";
SqlCommand cmd = new SqlCommand(sqlSelectQuery, con);
cmd.Parameters.Add("@UserName", SqlDbType.NVarChar, 100).Value = label1.Text;