首页 > 解决方案 > 我如何得到 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();
}

数据库图片 我该如何解决这个错误?

标签: c#

解决方案


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;

推荐阅读