使用具有相同开放连接的不同方法c#

时间:2015-11-13 11:20:45

标签: c#

我在C#和不同的方法中有一个类连接。方法connect获得三个参数。

我需要在方法inserirFornecedor中使用连接Open(),但是有一个错误:

  

ConnectionString属性尚未初始化。

  public Boolean connect(String user, String password, String BD) {

        connectionSql = new SqlConnection(
            "user id=" + user + ";" +
            "password=" + password + ";" +
            "Server=" + BD + ";" +
            "Database=****;" +
            "Connection timeout=30"
            );

            try
            {
                connectionSql.Open();
                MessageBox.Show("Ligação estabelecida com o Servidor! ", "Ligação");
                return true;

            }
            catch (SqlException ex)
            {

                MessageBox.Show("Falhou a ligação!", "Ligação" + ex.Message);
                return false;
            }

    }

    //Metodo para inserir fornecedor na base dados.
    public void inserirFornecedor(string codigo, string nome, string entrega, int qos, int tsq, int qtd) {


            commandSql = new SqlCommand("INSERT INTO supplierschedule VALUES(@codigo,@nome,@entrega,@qos,@tsq,@qtd)", connectionSql);


            commandSql.Parameters.AddWithValue("@codigo", codigo);
            commandSql.Parameters.AddWithValue("@nome", nome);
            commandSql.Parameters.AddWithValue("@entrega", entrega);
            commandSql.Parameters.AddWithValue("@qos", qos);
            commandSql.Parameters.AddWithValue("@tsq", tsq);
            commandSql.Parameters.AddWithValue("@qtd", qtd);
            commandSql.ExecuteNonQuery();

    }

1 个答案:

答案 0 :(得分:-1)

将代码更改为

public SqlConnection connect(String user, String password, String BD)
    {

        connectionSql = new SqlConnection(
            "user id=" + user + ";" +
            "password=" + password + ";" +
            "Server=" + BD + ";" +
            "Database=****;" +
            "Connection timeout=30"
            );

        try
        {
            connectionSql.Open();
            MessageBox.Show("Ligação estabelecida com o Servidor! ", "Ligação");
            return connectionSql;

        }
        catch (SqlException ex)
        {

            MessageBox.Show("Falhou a ligação!", "Ligação" + ex.Message);
            return null;
        }

    }

    //Metodo para inserir fornecedor na base dados.
    public void inserirFornecedor(string codigo, string nome, string entrega, int qos, int tsq, int qtd)
    {

         using (SqlConnection conn = connect(user, password, BD))
        {
            if (conn == null) return;//Cannot connect to DB
            commandSql = new SqlCommand("INSERT INTO supplierschedule VALUES(@codigo,@nome,@entrega,@qos,@tsq,@qtd)", conn);


            commandSql.Parameters.AddWithValue("@codigo", codigo);
            commandSql.Parameters.AddWithValue("@nome", nome);
            commandSql.Parameters.AddWithValue("@entrega", entrega);
            commandSql.Parameters.AddWithValue("@qos", qos);
            commandSql.Parameters.AddWithValue("@tsq", tsq);
            commandSql.Parameters.AddWithValue("@qtd", qtd);
            commandSql.ExecuteNonQuery();
        }

    }