1.自定义一个配置文件(.config/.txt),比如:在BIN目录下生成一个setting.config,通过winform界面把配置参数全部保存到这里面来。
2.保存到app.config中,可以把一些配置参数保存到app.config,这样在窗体编译的时候,app.config会自动生成到BIN目录下。
3.保存到数据库指定的表,比如:D_DataBase/T_Setting表,可以通过winform界面把参数全部保存到数据库指定的表中。
4.保存到注册表中。
方法还是很多的方法一:可以在数据库中建立Button表、Label表等数据表存储控件的有用属性
方法二:可以自定义一个可序列化的类来存储控件的属性,将序列化后的数据保存在数据库,序列化方式也有好几种
这两种方法保存事件恐怕不比较困难
方法三:脚本引擎,生成脚本保存
存储控件到数据库可能绝大多数时候都没什么意义,控件脱离了上下文本身也没意义,如果要保存界面的话,选取几个关键的属性保存就可以了,比如Location、Size这些
pictureBox 控件 Buttob控件
参考代码(显示用户选择的图片,点击上传按钮之后就以二进制保存到数据库中):
private void button1_Click(object sender, EventArgs e){
if (openFileDialog1.ShowDialog() == DialogResult.OK && openFileDialog1.FileName != "")
{
System.Drawing.Bitmap objPic
objPic = new System.Drawing.Bitmap(openFileDialog1.FileName.ToString().Trim())
pictureBox1.Image = new System.Drawing.Bitmap(objPic, 200, 200)
pictureBox1.Image = Image.FromFile(openFileDialog1.FileName)
}
}
private void button2_Click(object sender, EventArgs e)
{
try
{
string conString = "Data Source =. Initial Catalog = User ID = Pwd = "
SqlConnection connection = new SqlConnection(conString)
string sql = "insert c values (1,@TP)"
SqlCommand command = new SqlCommand(sql, connection)
string picturePath = openFileDialog1.FileName
FileStream fs = new FileStream(picturePath, FileMode.Open, FileAccess.Read)
Byte[] mybyte = new byte[fs.Length]
fs.Read(mybyte, 0, mybyte.Length)
fs.Close()
SqlParameter prm = new SqlParameter
("@TP", SqlDbType.VarBinary, mybyte.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, mybyte)
command.Parameters.Add(prm)
connection.Open()
int result = command.ExecuteNonQuery()
connection.Close()
if (result > 0) { MessageBox.Show("上传成功!", "提示")}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)