2015-06-30 3 views
0

Мой код ниже:я не могу вставить в базу данных SQL Server

public void InsertarClienteBD(int intCedula, string strNombre, string strApellido, string strTelefono, string strDireccion) 
{ 
    SqlConnection cnnConexion = ObtenerConexion(); 
    string strSentenciaSQL = "insert into Clientes (cedula, nombre, apellido, telefono, direccion) values ({0}, {1}, {2}, {3}, {4}) "; 
    strSentenciaSQL = string.Format(strSentenciaSQL, intCedula, strNombre, strApellido, strTelefono, strDireccion); 
    SqlCommand cmdComando = new SqlCommand(strSentenciaSQL, cnnConexion); 
    cmdComando.ExecuteNonQuery(); 

    cnnConexion.Close(); 
} 

Я получил ниже ошибки:

An unhandled exception of type 'System.Web.Services.Protocols.SoapException' occurred in System.Web.Services.dll

Additional information: System.Web.Services.Protocols.SoapException

+3

[SQL Injection alert] (http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - вы должны ** не ** конкатенатировать вместе с вашими операторами SQL - используйте ** параметризованные запросы **, чтобы избежать SQL-инъекции. –

+1

В коде вообще не упоминается «SOAP» (Simple Object Access Protocol), используете ли вы SOAP где-то еще? Или он использует SOAP для подключения к SQL? Вы получаете SOAP Исключения –

+0

Спасибо, 3-часовая потеря моей жизни, теперь работайте ... – Aaron

ответ

1

Сначала я хотел бы проверить значения, которые вы передаете, чтобы увидеть, если они правильный тип данных для каждого поля.

Во-вторых, я бы посмотрел на использование параметров с вашим запросом в качестве предлагаемого marc_s. Это позволит устранить любую проблему с типом данных, которую вы можете иметь. Например: https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters(v=vs.100).aspx

Смежные вопросы