2012-11-07 8 views
17

Wie kann ich Parameters.Add.WithValue in SqlDataAdapter verwenden. Unter den Suchcodes.C# Verwenden von Parameters.AddWithValue in SqlDataAdapter

var da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE '%"+txtSearch.Text+"%'", _mssqlCon.connection); 
var dt = new DataTable(); 
da.Fill(dt); 

schrieb ich den Code wie folgt aus:

SqlDataAdapter da; 
da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE '%@search%'", _mssqlCon.connection); 
da.SelectCommand.Parameters.AddWithValue("@search",txtSearch.Text); 
var dt = new DataTable(); 
da.Fill(dt); 

aber gescheitert. Könnten Sie mir helfen, wo ist meine Schuld?

+0

Ooh sorry. Als ich auf den Suchknopf klickte, gab es keine Reaktion. –

Antwort

48

Die Zeichenfolge verwendet, um die SqlDataAdapter initialisiert wird die CommandText der SelectCommand Eigenschaft des SqlDataAdapter.
Sie könnten Parameter zu diesem Befehl fügen Sie mit diesem Code

da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE @search", 
         _mssqlCon.connection); 
da.SelectCommand.Parameters.AddWithValue("@search","%" + txtSearch.Text + "%"); 
  • Zuerst entfernen Sie den Apostroph um den Parameter Platzhalter.
  • Zweitens die Wildcard-Zeichen direkt im Parameter Wert von AddWithValue

Sie haben gefragt hinzufügen AddWithValue, verwenden, aber daran erinnern, dass, während es eine nützliche Abkürzung, gibt es auch zahlreiche Nachteile und all gut dokumentiert.

Also, der gleiche Code ohne AddWithValue und die Object and Collection Initializers Syntax könnte geschrieben werden dies als

da = new SqlDataAdapter("SELECT * FROM annotations WHERE annotation LIKE @search", 
         _mssqlCon.connection); 
da.SelectCommand.Parameters.Add(new SqlParameter 
{ 
    ParameterName = "@search", 
    Value = "%" + txtSearch.Text + "%", 
    SqlDbType = SqlDbType.NVarChar, 
    Size = 2000 // Assuming a 2000 char size of the field annotation (-1 for MAX) 
}); 
0

Versuchen:

mySearchString = "Select * From test Where ([title] LIKE '%' + @title + '%')"; 
cmd.Parameters.Add("@title", SqlDbType.VarChar, 120); 
cmd.Parameters("@title").Value = TextBox1.Text; 
0

I Repeater für Show-Daten verwenden

int queryString =int.Parse(Request.QueryString["Id"]); 

SqlConnection conn =new SqlConnection("server=.; Database=Northwind; 
Integrated Security=true;"); 

try{ 
conn.Open(); 

SqlDataAdapter dataAdapter = new SqlDataAdapter("SELECT ProductID, ProductName, UnitPrice, CategoryID FROM Products WHERE CategoryID [email protected]", conn); 

dataAdapter.SelectCommand.Parameters.Add("@CategoryID", queryString); 
         DataSet dataSet = new DataSet(); 
         dataAdapter.Fill(dataSet); 
         QueryStringProductListRepeater.DataSource = dataSet; 
         QueryStringProductListRepeater.DataBind(); 
} 

catch{ 
Response.Write("QueryStringProductListRepeater"); 
} 

finally{ 
conn.Close(); 
}