C# 使用SQL Server数据库文件

C# 使用SQL Server数据库文件,c#,sql,database,C#,Sql,Database,我正在使用VisualStudio2010学习基本c语言,并正在创建一个使用SQLServer数据库的应用程序。 应用程序将允许用户在富文本框中输入文本,按下按钮,然后在文本框2中显示存储的单词。这些存储的单词仅是使用*的单词。 我有我的数据库文件,但我不知道如何做它的代码。到目前为止, SqlConnection myConn = new SqlConnection(@"Server=.\SQLEXPRESS;AttachDbFilename='C:\datafile.mdf';Integra

我正在使用VisualStudio2010学习基本c语言,并正在创建一个使用SQLServer数据库的应用程序。 应用程序将允许用户在富文本框中输入文本,按下按钮,然后在文本框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中显示数据的实际情况。

可能是这样的:

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

this.txtbox2.Text = builder.ToString();
//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();
}

可能是这样的:

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

this.txtbox2.Text = builder.ToString();
//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();
}

如果只希望显示以“*”开头的单词,则可以将数据库查询限制为仅返回它们:

SELECT name FROM bbc where name like '*%'

“%”字符是通配符-表示只返回以“*”开头并以任何内容结尾的结果

如果只希望显示以“*”开头的单词,则可以将数据库查询限制为仅返回它们:

SELECT name FROM bbc where name like '*%'
“%”字符是通配符-表示只返回以“*”开头并以任何内容结尾的结果

可能如下:

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

在SqlConnection周围放置一个using,以便它自动为您关闭它。 我注意到您正在尝试连接到主数据库。为什么? Dave提出了一个很好的观点,即使用通配符%来限制结果。 可能是:

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

在SqlConnection周围放置一个using,以便它自动为您关闭它。 我注意到您正在尝试连接到主数据库。为什么? Dave提出了一个很好的观点,即使用通配符%来限制结果。
我会用这样的方式:

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

this.txtbox2.Text = builder.ToString();
//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限制查询结果要简单得多,而且通常效率更高。

我会使用以下方法:

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

this.txtbox2.Text = builder.ToString();
//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限制查询结果要简单得多,而且通常效率更高。

我似乎得到了以下错误:System.Data.SqlClient.SqlException类型的未处理异常发生在System.Data.dll中。其他信息:尝试为文件C:\datafile.mdf附加自动命名数据库失败。存在同名数据库,或无法打开指定的文件,或该文件位于UNC共享上。我似乎无法获取此错误:System.Data.SqlClient.SqlException类型的未处理异常发生在System.Data.dll中。其他信息:尝试为文件C:\datafile.mdf附加自动命名数据库失败。存在同名数据库,或无法打开指定的文件,或该文件位于UNC共享上。请注意,您正在连接字符串中的主数据库。您应该连接到包含bbc表的数据库,或者将完整的架构信息放入SQL查询中。是的,对不起,我是从旧代码粘贴的,请参阅连接字符串中的updatedNote,您正在连接到主数据库。您应该连接到包含bbc表的数据库,或者将完整的架构信息放入SQL查询中。是的,对不起,我是从旧代码粘贴的,请查看更新的