Исключение типа 'System.Данные.В sqlclient.SqlException ' произошло в системе.Данные.файл DLL
Я новичок с C#, когда я выполнить код, это сообщение об ошибке возникает>>
"исключение типа 'System.Данные.В sqlclient.SqlException ' произошло в Система.Данные.DLL но не был обработан в пользовательском коде
дополнительная информация: неверный синтаксис рядом с'='. "
и это код!!
string position;
SqlConnection con = new SqlConnection("server=free-pcFATMAH; Integrated Security=True; database=Workflow; ");
con.Open();
SqlCommand cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID=" + id.Text, con);
SqlDataReader Read = cmd.ExecuteReader();
if (Read.Read()==true)
{
position = Read[0].ToString();
Response.Write("User Registration successful");
}
else
{
Console.WriteLine("No Employee found.");
}
Read.Close();
6 ответов
есть некоторые проблемы с вашим кодом. Сначала я советую использовать параметризованные запросы, чтобы избежать атак SQL-инъекций, а также типы параметров обнаруживаются framework:
var cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID = @id", con);
cmd.Parameters.AddWithValue("@id", id.Text);
во-вторых, поскольку вас интересует только одно значение, возвращаемое из запроса, лучше использовать ExecuteScalar
MSDN:
var name = cmd.ExecuteScalar();
if (name != null)
{
position = name.ToString();
Response.Write("User Registration successful");
}
else
{
Console.WriteLine("No Employee found.");
}
последняя вещь обернуть SqlConnection
и SqlCommand
на using
поэтому любые ресурсы, используемые теми, будут утилизированы:
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.");
}
}
}
попробуй такое
SqlCommand cmd = new SqlCommand("SELECT EmpName FROM Employee WHERE EmpID=@id", con);
cmd.Parameters.AddWithValue("id", id.Text);
необработанное исключение типа System.Данные.В sqlclient.SqlException ' произошло в системе.Данные.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();
}
используйте try-catch, чтобы увидеть реальную ошибку, возникшую на вас
try
{
//Your insert code here
}
catch (System.Data.SqlClient.SqlException sqlException)
{
System.Windows.Forms.MessageBox.Show(sqlException.Message);
}
using (var cmd = new SqlCommand("SELECT EmpName FROM [Employee] WHERE EmpID = @id", con))
поставить []
вокруг имени таблицы ;)