簡體   English   中英

從數據庫中檢索一些數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM