SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: alfguzman en Miércoles 6 de Julio de 2005, 20:05
-
Hola tengo un problema, tengo el siguiente codigo:
Tengo una BD en access y el error que me manda al intentar insertar los datos es:
Syntax Error: INSERT INTO statement.
Segun yo ya la revise bien y no puedo resolver el problema alguein me puede echar una mano.
Gracias y saludos
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
private string RandomString(int size, bool lowerCase)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(26 * random.NextDouble() + 65));
builder.Append(ch);
}
if (lowerCase)
return builder.ToString().ToLower();
return builder.ToString();
}
private string getFecha()
{
string fecha;
fecha = DateTime.Now.ToShortDateString();
return fecha;
}
private string getHora()
{
string hora;
hora = DateTime.Now.ToShortTimeString();
return hora;
}
protected void btnEnviar_Click(object sender, EventArgs e)
{
int num = 0;
String Folio;
String letra;
String fechaActual;
String horaActual, qryInsert;
String sFolio, sNombreRemite, sApellidoRemite, sDpto, sSite, sEmail, sExt;
num = RandomNumber(0, 100000);
letra = RandomString(2, true);
Folio = letra + "-" + txtExtencion.Text + num.ToString();
fechaActual = getFecha();
horaActual = getHora();
String strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;";
strConnection += "Data Source=c:\\mensajeria.mdb";
sFolio = Folio;
sNombreRemite = Request.Form["txtNombreRemitente"];
sApellidoRemite = Request.Form["txtApellidoRemitente"];
sDpto = Request.Form["txtDepartamento"];
sSite = Request.Form["radioBtnSiteOrigen"];
sEmail = Request.Form["txtEmail"];
sExt = Request.Form["txtExtencion"];
qryInsert = "INSERT INTO Remitente (folio, NombreRemitente, ApellidosRemitente, Departamento, Site, e-mail, ext)" +
"VALUES (" + sFolio + ", " + sNombreRemite + ", " + sApellidoRemite + ", " + sDpto + ", " + sSite + ", " + sEmail + ", " + sExt + ")";
lblMessage.Visible = true;
lblMessage.Text = sSite + "El folio es: " + sFolio;
OleDbConnection objConnection = new OleDbConnection(strConnection);
OleDbCommand myCommand = new OleDbCommand(qryInsert, objConnection);
int rows = 0;
objConnection.Open();
rows = myCommand.ExecuteNonQuery();
objConnection.Close(); }
}
}
-
te faltan las comillas de los valores en el insert
-
ya se las puse y me sigue enviando el mismo problema me podrias dar otro tip
-
muestrame como las pusiste.
-
Las puse asi dime si estoy mal:
qryInsert = "INSERT INTO Remitente (folio, NombreRemitente, ApellidosRemitente, Departamento, Site, e-mail, ext)" +
"VALUES ('" + sFolio + "', '" + sNombreRemite + "', '" + sApellidoRemite + "', '" + sDpto + "', '" + sSite + "', '" + sEmail + "', '" + sExt + "')";
-
hasle debug a tu aplicacion y mustrame el valor de la variable
qryInsert
despues de haberle asignado la sentencia de insert.
-
Esto es lo que me regreso. No estare mal en la creacion de la conexión o algo asi, yo soy realmente nuevo en .Net.
Los tipos de datos de la tabla access Remitente estan como TEXT
INSERT INTO Remitente (folio, NombreRemitente, ApellidosRemitente, Departamento, Site, e-mail, ext)VALUES ('gw-899922464', 'Alfredo', 'Guzman', 'ventas', 'periferico', 'nombre.apellido@algo.com', '8999')
-
no se supone qu eran comillas dobles? :blink:
corrigeme sino.
-
ya no se ni de cuales ni en donde estoy bien embolado con esta madre
-
disculpen que me introdusca en discucion pero tengo una duda, que este muy relacionada con el tema de insert pero en el oracle, donde intento insertar una cadena caracteres en un campo clob y me da error :lightsabre: si me puden ayudar..
-
No se si tu problema radique en la conexion al Bd
String strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;";
strConnection += "Data Source=c:\mensajeria.mdb";
Normalmente yo utilizo esta conexion... espero ke te sirva...
String strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + @"mensajeria.mdb";
-
Hola que tal a todos,
Bueno, creo que a mi humilde manera de ver este error, creo que no es cuestio de la conexion, oye una pregunta cuando llega al momento de tu Open() si pones unbreak point si pasa la conexion?
esta es la sintaxis del insert
sql := ""
sql := sql + "INSERT INTO StudentOptionChoices ( StudentID, ModuleCode, semester, Academic_Year ) " ;
sql := sql + " VALUES ('" ;
sql := sql + DBGStudentsList.datasource.dataset.FieldByName('studentID').AsString ;
sql := sql + "','" ;
sql := sql + DBGAvailableModules.datasource.dataset.FieldByName('ModuleCode').AsString ;
sql := sql + "','" ;
sql := sql + DBGAvailableModules.datasource.dataset.FieldbyName('semester').AsString ;
sql := sql + "','" ;
sql := sql + quotedstr(AcadYear) ;
sql := sql + "')" ;
lo separe de esa manera para que veas donde debe llevar las comillas, si puedes poner tu sqlCommand o tu variable de esta manera seria mas facil ayudarte y mas rapido :-), ya intentaste hacer una insercion normal? es decir directo en el managment? y compara tu variable contra tu insercion manual, intenta con pocos valores y que correspondan cada uno al que debe ser el correcto en el campo, saludos