2017-05-07 2 views
-1

Ich weiß, dass dieser Titel wiederholt zu sein scheint, aber ich habe versucht zu suchen und habe die Antwort nicht gefunden.Falsche Syntax in der Nähe von ','. Beschreibung: Während der Ausführung ist eine unbehandelte Ausnahme aufgetreten.

Code:

using System; 
using System.Configuration; 
using System.Data; 
using System.Data.SqlClient; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) {} 

    protected void gv_master_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     // Get the currently selected row using the SelectedRow property. 
     GridViewRow row = gv_master.SelectedRow; 

     // Display the first name from the selected row. 
     // In this example, the third column (index 2) contains 
     // the first name. 
     lbl_reqNoV.Text = row.Cells[1].Text; 
     lbl_reqNoV.Visible = true; 
     lbl_reqNo.Visible = true; 

     SqlConnection sqlConnection1 = new SqlConnection("Data Source=saitest01;Initial Catalog=SAI_website;Persist Security Info=True;User ID=sa;[email protected]"); 
     SqlCommand cmd = new SqlCommand(); 

     cmd.CommandText = "Select * from purchase Where ReqNo = '" + lbl_reqNoV.Text + "', sqlConnection1"; 

     cmd.CommandType = CommandType.Text; 
     cmd.Connection = sqlConnection1; 

     sqlConnection1.Open(); 
     SqlDataReader DR1; 
     DR1 = cmd.ExecuteReader(); 
     DR1.Read(); 

     // Data is accessible through the DataDR1 object here 
     gv_full.DataSource = DR1; 
     gv_full.DataBind(); 
    } 
} 
+0

Ist dies ein SQL-Fehler, haben Sie ein zusätzliches Komma? – luly

+0

Um die Qualität Ihrer Frage zu verbessern, geben Sie bitte den vollständigen Text der Fehlermeldung einschließlich eines Verweises auf die Zeilennummer an. – toonice

+1

Ich benutze SQL nicht oft selbst, aber dass ', sqlConnection1' in Ihrer Abfrage Zeichenfolge scheint verdächtig. Ich bin mir nicht sicher, ob das eine gültige Syntax ist. (Jemand kann mich sonst korrigieren.) – Abion47

Antwort

2

das Problem ist, dass Sie, wo Sie den Namen Connection in der Abfrage das Hinzufügen von Text, die ist ofcource nicht durch sqlserver das richtige Format erkannt wurde

var cmd = new SqlCommand("Select * from purchase Where ReqNo = @reqno",sqlConnection1) 

oder Sie können dies tun,

sollten Sie immer Parameter verwenden rs in Abfrage Sql Injection

+0

@forbiddenghost Sie können die Antwort annehmen :) Wenn Sie nicht wissen, wie Sie diese https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work überprüfen können – Usman

0

nur

cmd.CommandText = "Select * from purchase Where ReqNo = '" + lbl_reqNoV.Text + "', sqlConnection1"; 

mit,

folgenden ändern zu vermeiden
cmd.CommandText = "Select * from purchase Where ReqNo = '" + lbl_reqNoV.Text + "' "; 

Above wird Ihr Code arbeiten machen. Aber Sie sollten Ihren Code ändern, um mit SQL Injection umzugehen. Wie von @Usman beantwortet

Verwandte Themen