如何从数据库中获取数据并将其放入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]
您可以使用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