如何使用c#将复选框值存储到sql server数据库中
本文关键字:sql server 数据库 存储 何使用 复选框 | 更新日期: 2023-09-27 18:25:28
我正在使用C#和SQL Server进行"使用遗传算法的时间表调度"项目。。
我将项目分为三层:数据访问层、业务层和接口。
数据访问层包含:
- 构造函数初始化连接对象
- 打开连接的方法
- 从数据库读取数据的方法
- 从数据库中插入、更新和删除数据的方法
例如:
//Method to insert , update ,delete data from database
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_COURSE.CLS
表示"添加课程"
class CLS_ADD_COURSE
{
public void ADD_COURSE(string DESC_COURSE, int TERM, bool LAB, bool Specialized)
{
DAL.DataAccessLayer DAL = new DAL.DataAccessLayer();
DAL.Open();
SqlParameter[] param = new SqlParameter[4];
param[0] = new SqlParameter("@DESC_COURSE", SqlDbType.VarChar, 50);
param[0].Value = DESC_COURSE;
param[1] = new SqlParameter("@TERM", SqlDbType.Int);
param[1].Value = TERM;
param[2] = new SqlParameter("@LAB", SqlDbType.Bit);
param[2].Value = LAB;
param[3] = new SqlParameter("@Specialized", SqlDbType.Bit);
param[3].Value = Specialized;
DAL.ExecuteCommand("ADD_COURSE", param);
DAL.Close();
}
现在我想将数据存储到数据库中,所以我以表单形式编写了这条指令,但它不适用于复选框值
COURSE.ADD_COURSE(txt_COURSE_name.Text, Convert.ToInt32(TXT_COURSE_TERM.Text),Convert.ToBoolean(CHECK_LAB.Text),Convert.ToBoolean(CHECK_SP.Text));
那么,如何使用C#将复选框值存储到SQL Server数据库中呢?
这是我的程序:
create PROC [dbo].[ADD_COURSE]
@DESC_COURSE VARCHAR(50),
@TERM INT,
@LAB BIT,
@Specialized BIT
AS
INSERT INTO [dbo].[COURSE]([DESC_COURSE], [TERM], [LAB],[Specialized ])
VALUES (@DESC_COURSE, @TERM, @LAB, @Specialized)
您可以这样做。在这里,我将雇员插入数据库。。请参阅管理员权限。哪个是复选框adminrights数据库类型为位
SqlCommand Command = new SqlCommand();
Command.Connection = MyConnection;
Command.CommandText =
"Insert into Employees (ID, Name, Last_name, Username, Password, E_mail, Address, administrator_rights)"
+ "values(@ID, @Name, @Last_name, @Username, @Password, @E_mail,Address, @admin_rights )";
Command.Parameters.Add("@ID", 1); // some generated number
Command.Parameters.Add("@Name", TextBoxName.Text);
Command.Parameters.Add("@Last_name", TextBoxLastName.Text);
Command.Parameters.Add("@Username", TextBoxUserName.Text);
Command.Parameters.Add("@Password", TextBoxPassword.Text);
Command.Parameters.Add("@E_mail", TextBoxEmail.Text);
Command.Parameters.Add("@Address", TextBoxAddress.Text);
Command.Parameters.Add("@admin_rights", CheckBoxAdminRights.Checked);
using (MyConnection)
{
Command.ExecuteNonQuery();
}
您可以使用int,tinyint, bit
将其存储在数据库中。如果复选框被选中,则将其存储为1;如果复选框未被选中,则将它存储为0。当您获取复选框的值时,您应该执行相同的操作。如果数据库中的值为1,则将复选框设置为选中。
可以使用位掩码逻辑将复选框的多个值存储在一个数据库字段中。但在你的情况下,可能你不需要这样。