如何使用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)

如何使用c#将复选框值存储到sql server数据库中

您可以这样做。在这里,我将雇员插入数据库。。请参阅管理员权限。哪个是复选框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,则将复选框设置为选中。

可以使用位掩码逻辑将复选框的多个值存储在一个数据库字段中。但在你的情况下,可能你不需要这样。