请参阅我的SqlConnection中的MySqlCommand
问题描述:
我的连接按钮工程..请参阅我的SqlConnection中的MySqlCommand
private void connectBtn_Click(object sender, EventArgs e) { username = initialTf.Text; adress = adressTf.Text; connect conn = new connect(); conn.myConnection(username, adress); }
指的这种方法
public SqlConnection myConnection(string dbName, string addr) { connector = new SqlConnection( "Data Source=" + addr + ";" + "Initial Catalog=" + dbName + ";Trusted_Connection=yes;"); try { connector.Open(); MessageBox.Show("Du är ansluten"); } catch (Exception e) { MessageBox.Show("Fail" + e); } return connector;
然后我添加另一个按钮阅读从将执行SQL命令的textField。问题是我不知道如何获取和使用连接方法。
按钮代码
private void askBtn_Click(object sender, EventArgs e) { sqlQuestion = sqlQuestiontF.Text; connect conn = new connect(); conn.askSQL(sqlQuestion); }
最后的代码在连接类
> class connect
> {
> SqlConnection connector;
> SqlDataReader rdr = null;
>
> public void askSQL (string sqlQuestion)
> {
>
> SqlCommand cmd = new SqlCommand();
> cmd.CommandText = sqlQuestion;
> cmd.Connection = connector;
> try
> {
> rdr = cmd.ExecuteReader();
> while (rdr.Read())
> {
>
> }
>
> }
> catch (Exception e)
> {
> MessageBox.Show("Fel vid anslutningen!" + e);
> }
> }
我的错误信息是说,连接没有被正确initalized。对不起语法错误和我的困惑。完全新编程:)
答
在你的第二个按钮单击事件你声明另一个连接对象。这与第一个按钮中的不一样。 askSQL()方法期望连接已经被初始化。为此,您必须在第二个按钮事件中运行第一个按钮代码。
private void askBtn_Click(object sender, EventArgs e)
{
sqlQuestion = sqlQuestiontF.Text;
username = initialTf.Text;
adress = adressTf.Text;
connect conn = new connect();
conn.myConnection(username, adress);
conn.askSQL(sqlQuestion);
}
答
我想你错过了connector.Open()的代码。
class connect
{
SqlConnection connector;
SqlDataReader rdr = null;
public void askSQL(string sqlQuestion)
{
try
{
using (connector = new SqlConnection("Your Connection String here"))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = sqlQuestion;
cmd.Connection = connector;
rdr = cmd.ExecuteReader();
using (rdr)
{
while (rdr.Read())
{
}
}
}
}
catch (Exception ex)
{
if (connector.State == System.Data.ConnectionState.Open)
connector.Close();
MessageBox.Show("Fel vid anslutningen!" + e);
}
}
}
+0
conn.Open()位于myConnection类中。我想分开连接类和sql命令类。你也许知道一个sql查询的返回类型是什么?我的大脑正在努力研究如何让答案回到屏幕上。 – Thomas 2012-02-01 10:24:33
谢谢它的工作。现在我想知道如何检索从SqlQuery获得的数据以及如何将其发回视图类。你知道如何以及什么是最好的(列表框等)用来发回结果集? – Thomas 2012-02-01 10:22:12
将datareader声明从askSQL方法中提取出来,并将其作为connect类的属性公开,然后可以从表单访问它。在表单上使用datagridview来显示结果。 – 2012-02-01 13:06:25