winform窗体传值过来的值保存

winform窗体传值过来的值保存,第1张

以下几种方法供参考:

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)

                }

            }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10001600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存