[英]Retrieve some data from database
我想從數據庫中檢索一些數據,但是我遇到了問題
private void BindGrid()
{
string constr = ConfigurationManager.ConnectionStrings["homeworkConnectionString2"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Id, FileName, Date from tblFiles where CourseName LIKE '%' + TextBox3.Text + '%'"; ;
cmd.Connection = con;
con.Open();
GridView1.DataBind();
con.Close();
}
}
}
文本框3具有該數據
因此,我要感謝的問題是“ LIKE”嗎?
我將其更改為:
private void BindGrid()
{
string likeCondition = string.Empty;
string textBoxContent = TextBox3.Text;
var splittedContents = textBoxContent.Split(',').ToList();
int index = 0;
foreach (var splittedContent in splittedContents)
{
likeCondition += "CourseName LIKE %" + splittedContent + "%";
index++;
if (index != splittedContent.Length)
likeCondition += " OR ";
}
string constr = ConfigurationManager.ConnectionStrings["homeworkConnectionString2"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Id, FileName, Date from tblFiles where " + likeCondition; ;
cmd.Connection = con;
con.Open();
GridView1.DataBind();
con.Close();
}
}
}
但它仍然無法正常工作-我該怎么辦?
cmd.CommandText = "select Id, FileName, Date from tblFiles where CourseName LIKE '%' + TextBox3.Text + '%'"
您的字符串使用文字文本框名稱。
你想要類似的東西
cmd.CommandText = "select Id, FileName, Date from tblFiles where CourseName LIKE '%" + TextBox3.Text + "%'"
但是,使用參數化查詢會更好
cmd.CommandText = "select Id,Name from tblName where Name LIKE '%" + TextBox1.Text + "%'"
您需要針對拆分您的TextBox3
內容,
並構建您的整體條件。
我會以以下方式做到這一點:
string likeCondition = string.Empty;
string textBoxContent = "Programming1,Database";// use TextBox3.Text here
var splittedContents = textBoxContent.Split(',').ToList();
int index = 0;
foreach (var splittedContent in splittedContents)
{
likeCondition += "CourseName LIKE %" + splittedContent + "%";
index++;
if (index != splittedContent.Length)
likeCondition += " OR ";
}
現在,您應該通過以下方式在查詢中使用上述likeCondition
:
cmd.CommandText = "select Id, FileName, Date from tblFiles where " + likeCondition; ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.