使用SQL Server数据库文件
我正在学习使用visual studio 2010的基本c#,并且正在创建使用SQL Server数据库的应用程序。 该应用程序将允许用户在文本框中输入文本到一个富文本框中,按一个按钮,然后在文本框2中显示“存储”的单词。这些存储的单词只是带*的单词。 我有我的数据库文件,但我无法弄清楚如何为它做代码。到目前为止,我有,使用SQL Server数据库文件
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
我会用这样的:
//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.dll中发生未处理的类型'System.Data.SqlClient.SqlException异常' 其他信息:An试图为文件C:\ datafile.mdf附加一个自动命名的数据库失败。具有相同名称的数据库存在,或指定的文件无法打开,或位于UNC共享上。 – user1300788 2012-04-19 18:18:43
可能是这样的刚刚情况:
StringBuilder builder = new StringBuilder();
while (sdr.Read())
{
string value = sdr["name"].ToString();
if(value.Contains("*"))
builder.Append(value);
}
this.txtbox2.Text = builder.ToString();
如果你只希望显示与“*”开头的话 - 那么你可以限制你的数据库查询只返回他们:
SELECT name FROM bbc where name like '*%'
的“%”字符是一个通配符 - 这意味着只返回结果ST用'*'进行创作并以任何结束。
也许以下几点:
while (sdr.Read())
{
string value = sdr["name"].ToString();
if(value.StartsWith("*"))
txtbox2.Text += value;
}
有几点:
- 把周围的SqlConnection一个使用因此它会自动关闭它。
- 我注意到你正试图连接到主数据库。为什么?
- Dave对使用通配符
%
限制结果很有帮助。
请注意,您正在连接到连接字符串中的主数据库。您应该连接到包含bbc表的数据库,或者将完整的模式信息放入SQL查询中。 – duraz0rz 2012-04-19 18:23:37
对不起,我粘贴从我的旧代码,请参阅更新 – user1300788 2012-04-19 18:26:51