An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

前端 未结 6 1183
醉梦人生
醉梦人生 2020-12-16 04:07

When I execute my code below, this error message occurs:

"An exception of type \'System.Data.SqlClient.SqlException\' occurred in System.Data.dll bu

相关标签:
6条回答
  • 2020-12-16 04:31

    I think your EmpID column is string and you forget to use ' ' in your value.

    Because when you write EmpID=" + id.Text, your command looks like EmpID = 12345 instead of EmpID = '12345'

    Change your SqlCommand to

    SqlCommand cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID='" + id.Text +"'", con);
    

    Or as a better way you can (and should) always use parameterized queries. This kind of string concatenations are open for SQL Injection attacks.

    SqlCommand cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID = @id", con);
    cmd.Parameters.AddWithValue("@id", id.Text);
    

    I think your EmpID column keeps your employee id's, so it's type should some numerical type instead of character.

    0 讨论(0)
  • 2020-12-16 04:34

    Try this

    SqlCommand cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID=@id", con);
    cmd.Parameters.AddWithValue("id", id.Text);
    
    0 讨论(0)
  • 2020-12-16 04:41

    There are some problems with your code. First I advise to use parametrized queries so you avoid SQL Injection attacks and also parameter types are discovered by framework:

    var cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID = @id", con);
    cmd.Parameters.AddWithValue("@id", id.Text);
    

    Second, as you are interested only in one value getting returned from the query, it is better to use ExecuteScalar:

    var name = cmd.ExecuteScalar();
    
    if (name != null)
    {
       position = name.ToString();
       Response.Write("User Registration successful");
    }
    else
    {
        Console.WriteLine("No Employee found.");
    }
    

    The last thing is to wrap SqlConnection and SqlCommand into using so any resources used by those will be disposed of:

    string position;
    
    using (SqlConnection con = new SqlConnection("server=free-pc\\FATMAH; Integrated Security=True; database=Workflow; "))
    {
      con.Open();
    
      using (var cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID = @id", con))
      {
        cmd.Parameters.AddWithValue("@id", id.Text);
      
        var name = cmd.ExecuteScalar();
      
        if (name != null)
        {
           position = name.ToString();
           Response.Write("User Registration successful");
        }
        else
        {
            Console.WriteLine("No Employee found.");
        }
      }
    }
    
    0 讨论(0)
  • 2020-12-16 04:43
    using (var cmd = new SqlCommand("SELECT EmpName FROM [Employee] WHERE EmpID = @id", con))
    

    put [] around table name ;)

    0 讨论(0)
  • 2020-12-16 04:44

    An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll

        private const string strconneciton = "Data Source=.;Initial Catalog=Employees;Integrated Security=True";
        SqlConnection con = new SqlConnection(strconneciton);
    
        private void button1_Click(object sender, EventArgs e)
        {
    
            con.Open();
            SqlCommand cmd = new SqlCommand("insert into EmployeeData (Name,S/O,Address,Phone,CellNo,CNICNO,LicenseNo,LicenseDistrict,LicenseValidPhoto,ReferenceName,ReferenceContactNo) values ( '" + textName.Text + "','" + textSO.Text + "','" + textAddress.Text + "','" + textPhone.Text + "','" + textCell.Text + "','" + textCNIC.Text + "','" + textLicenseNo.Text + "','" + textLicenseDistrict.Text + "','" + textLicensePhoto.Text + "','" + textReferenceName.Text + "','" + textContact.Text + "' )", con);
            cmd.ExecuteNonQuery();
            con.Close();
        }
    
    0 讨论(0)
  • 2020-12-16 04:52

    use try-catch to see real error occurred on you

     try
    {
      //Your insert code here
    }
    catch (System.Data.SqlClient.SqlException sqlException)
    {
      System.Windows.Forms.MessageBox.Show(sqlException.Message);
    }
    
    0 讨论(0)
提交回复
热议问题