我正在使用遗传算法"时间表调度"使用C#和SQL Server的项目..
我将项目划分为3层数据访问层,业务层和接口。
数据访问层包含:
例如:
//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
for" Add COURSE"
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)
答案 0 :(得分:0)
您可以使用int,tinyint, bit
将其存储在数据库中。如果复选框已选中,则将其存储为1,如果未选中存储,则将其存储为0.当您获取复选框的值时,您应该执行相同的操作。如果数据库中的值为1,则设置要检查的复选框。
可以使用位掩码逻辑在一个数据库字段中存储多个复选框值。但在你的情况下,你可能不需要这样做。
答案 1 :(得分:0)
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();
}