2

我正在使用 Visual Studio 2010 学习基本的 C#,并且正在创建一个使用 SQL Server 数据库的应用程序。该应用程序将允许用户在富文本框中输入文本,按下按钮,然后在文本框 2 中显示“已存储”字词。这些已存储字词仅是带有 * 的字词。我有我的数据库文件,但我不知道如何为它编写代码。到目前为止,我有,

SqlConnection myConn = new SqlConnection(@"Server=.\SQLEXPRESS;AttachDbFilename='C:\datafile.mdf';Integrated Security=True;User Instance=True");
con.Open();
SqlCommand com = new SqlCommand("SELECT name FROM bbc", con);
SqlDataReader sdr = com.ExecuteReader();
while (sdr.Read())
{
    this.txtbox2.Text.Add(sdr[""]);
}

这是在我的按钮处理程序下。

我已经设置了我的数据文件,所以这只是如何设置它以从文本框 1 获取数据并将其显示在文本框 2 中的情况

4

4 回答 4

0

可能是这样的:

StringBuilder builder = new StringBuilder();
while (sdr.Read())
{
    string value = sdr["name"].ToString();
    if(value.Contains("*"))
        builder.Append(value );
}

this.txtbox2.Text = builder.ToString();
于 2012-04-19T17:57:49.413 回答
0

如果您只想显示以 '*' 开头的单词 - 那么您可以将数据库查询限制为仅返回它们:

SELECT name FROM bbc where name like '*%'

'%' 字符是一个通配符 - 意味着只返回以 '*' 开头并以任何结尾的结果。

于 2012-04-19T18:05:26.187 回答
0

也许如下:

while (sdr.Read())
{
    string value = sdr["name"].ToString();
    if(value.StartsWith("*"))
        txtbox2.Text += value;
}

几点:

  • 在 SqlConnection 周围放置一个 using 以便它自动为您关闭它。
  • 我注意到您正在尝试连接到主数据库。为什么?
  • Dave 提出了一个很好的观点,即使用通配符%来限制结果。
于 2012-04-19T18:06:52.113 回答
0

我会使用这样的东西:

//SQL Connection stuff here
con.Open();
String queryStr = "SELECT name FROM bbc WHERE name LIKE '*%'";
SqlCommand com = new SqlCommand(queryStr, con);
SqlDataReader sdr = com.ExecuteReader();

while(sdr.Read())
{
   this.textbox2.Text = sdr.GetValue(0).ToString();
}

让 SQL 限制查询结果要简单得多,而且通常效率更高。

于 2012-04-19T18:11:55.587 回答