Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 请参阅mySqlCommand中的mysqlconnection_C#_Sqlconnection - Fatal编程技术网

C# 请参阅mySqlCommand中的mysqlconnection

C# 请参阅mySqlCommand中的mysqlconnection,c#,sqlconnection,C#,Sqlconnection,我的连接按钮起作用了 参考这种方法 然后我添加了另一个按钮,该按钮从一个文本字段读取数据,该字段将执行一个SQL命令。问题是我不知道如何获取和使用连接方法 按钮代码 最后是connect类中的代码 > class connect > { > SqlConnection connector; > SqlDataReader rdr = null; > > public void askSQL (strin

我的连接按钮起作用了

参考这种方法

然后我添加了另一个按钮,该按钮从一个文本字段读取数据,该字段将执行一个SQL命令。问题是我不知道如何获取和使用连接方法

按钮代码

最后是connect类中的代码

> 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);
>             }
>         }

我的错误消息是连接尚未正确初始化。对不起,语法错误和我的困惑。全新编程:)

在第二个按钮单击事件中,您正在声明另一个连接对象。这与第一个按钮中的按钮不同。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);
        }
    }
}

谢谢,成功了。现在我想知道如何检索从SqlQuery获得的数据,以及如何将其发送回view类。您知道如何以及最好使用什么(listbox等)来发回resultset吗?将datareader声明从askSQL方法中取出,并将其作为connect类的属性公开,然后可以从表单中访问它。在窗体上,使用datagridview显示结果。conn.Open()位于myConnection类中。我想把连接类和sql命令类分开。您可能知道sql查询的返回类型是什么吗?我的大脑正在努力想办法让答案回到屏幕上。
> 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);
>             }
>         }
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);
}
    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);
        }
    }
}