如何从数据库中获取数据并将其放入c#中的变量中

本文关键字:变量 数据库 获取 数据 | 更新日期: 2023-09-27 18:25:19

我正在进行"使用遗传算法的时间表编制项目"使用C#和Sql服务器。。

我将项目划分为3层(数据访问层、业务层和接口)

数据访问层包含:

(构造函数初始化连接对象,打开连接的方法,打开连接,从数据库读取数据的方法,从数据库插入、更新、删除数据的方法)

例如:

//从数据库中插入、更新、删除数据的方法

 public void ExecuteCommand(string stored_procedure, SqlParameter[] param)
        {
            SqlCommand sqlcmd = new SqlCommand();
            sqlcmd.CommandType = CommandType.StoredProcedure;
            sqlcmd.CommandText = stored_procedure;
            sqlcmd.Connection = sqlconnection;
            if (param != null)
            {
                sqlcmd.Parameters.AddRange(param);
            }
            sqlcmd.ExecuteNonQuery();
        }

业务层包含每个表单的类

例如:"添加教授表格"的ADD_PROF.class

现在,为了从数据库中获取教授的所有数据,我创建了(get_all_PROF)过程,并将此代码写入ADD_PROF类

public DataTable GET_ALL_PROF()  //copied and pasted down for verfing
        {
            DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
            DataTable Dt = new DataTable();
            Dt = DAL.SelectData("GET_ALL_PROF", null);
            DAL.Close();
            return Dt;
        }

我的问题是。。。我不知道如何从数据库中的教授表中获取(Professors ID),并将其放入变量中,以在C#中的遗传算法代码中传递?

sql中的过程是

Create proc [dbo].[get_id_PROF] 
as
select ID_PROF from [dbo].[PROFESSOR]

如何从数据库中获取数据并将其放入c#中的变量中

您可以使用SqlDataReader从数据库中读取数据,并简单地使用它将数据库中的数据存储在变量中。

int professorId;
private static void ReadOrderData(string connectionString)
{
    string queryString = "select ID_ST from [dbo].[PROFESSOR];";
    using (SqlConnection connection = new SqlConnection(connectionString))
    using (SqlCommand command = new SqlCommand(queryString, connection))
    {
        connection.Open();
        using (SqlDataReader reader = command.ExecuteReader())
        {
            // Call Read before accessing data. 
            if (reader.HasRows())
            { 
                reader.Read(); 
                professorId = reader.GetInt32(0);
                // Call Close when done reading.
                reader.Close();
            }
        }
    }
}

或者您可以尝试使用存储过程:

int professorId;
using (SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"))
using (SqlCommand cmd = new SqlCommand())
{
    cmd.CommandText = "StoredProcedureName";
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Connection = sqlConnection1;
    sqlConnection1.Open();
    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        // Data is accessible through the DataReader object here.
        reader.Read(); 
        professorId = reader.GetInt32(0);
    }
}
  • SqlDataReader

  • Helper Link

  • Helper Link