嵌入式firebird+VS2015实例十

示例ERRCheckTest

为容易出错的代码段加上try{...}catch (Exception ex) {...}防止崩溃。

建立VS2015 C#项目:ERRCheckTest

InsertDataTest模板

修改代码

       程序运行时,在按扭上胡乱点,哪个语句有问题,就用下面的格式:

Try

{

有问题的代码

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

//或者输出自己确定的出问题原因

}

完整代码

using System;

using System.Data;

using System.Windows.Forms;

using System.IO;

using FirebirdSql.Data.FirebirdClient;

 

namespace ERRCheckTest

{

    publicpartialclassFrmMain : Form

    {

        public FrmMain()

        {

            InitializeComponent();

        }

        publicFbConnection myConnection;

        staticstringGetConnectionString()// 连接字符串

        {

            FbConnectionStringBuilder cs = newFbConnectionStringBuilder();

            cs.UserID = "SYSDBA";

            cs.Password = "masterkey";

            cs.Database = Application.StartupPath + "\\data\\测试.fdb";

            cs.DataSource = "localhost";

            cs.Charset = "UTF8";

            cs.Port = 3050;

            cs.Dialect = 3;

            cs.Role = "";

            cs.ConnectionLifeTime = 15;

            cs.Pooling = true;

            cs.MinPoolSize = 0;

            cs.MaxPoolSize = 50;

            cs.PacketSize = 8192;

            cs.ServerType = FbServerType.Embedded;

            return cs.ToString();

        }

        privatevoid btnCreateDB_Click(object sender, EventArgs e)

        {

            //创建数据库

            string path = Application.StartupPath + "\\data\\测试.fdb";

            try

            {

                if (File.Exists(path))

                {

                    File.Delete(path);

                    FbConnection.CreateDatabase(GetConnectionString());

                    MessageBox.Show("文件存在,删除重建!");

                }

                else

                {

                    FbConnection.CreateDatabase(GetConnectionString());

                    MessageBox.Show("文件不存在,直接创建!");

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

        privatevoidbtnOpenDB_Click(object sender, EventArgs e)

        {

            //打开数据库

            myConnection = newFbConnection(GetConnectionString());

            try

            {

                myConnection.Open();

                MessageBox.Show("打开连接成功!");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

        privatevoidbtnCreateTable_Click(object sender, EventArgs e)

        {

            //创建空表

            try

            {

                FbCommand createTable = myConnection.CreateCommand();

                createTable.CommandText = "create table TestTBL (id int,\"姓名\" varchar(20))";

                createTable.ExecuteNonQuery();

                createTable.Dispose();

                MessageBox.Show("创建空表成功!");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

  

        }

        privatevoidbtnBinddgView_Click(object sender, EventArgs e)

        {

            //DataGridView显示数据

            FbDataAdapter dt = newFbDataAdapter("select * from TestTBL", myConnection);

            DataSet ds = newDataSet();

            try

            {

                dt.Fill(ds, "TestTBL");

                this.dgViewDB.DataSource = ds;

                this.dgViewDB.DataMember = "TestTBL";

                MessageBox.Show("DataGridView显示数据!");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

            dt.Dispose();

            ds.Dispose();

        }

 

        privatevoidbtnInsertData_Click(object sender, EventArgs e)

        {

            //插入数据

            try

            {        

                //插入数据一

                FbCommand insertData = myConnection.CreateCommand();

                insertData.CommandText = "insert into TestTBL values(@id, @name)";

                insertData.Parameters.Clear();

                insertData.Parameters.Add("@id", FbDbType.Integer).Value = 1;

                insertData.Parameters.Add("@name", FbDbType.VarChar, 20).Value = "张三";

                insertData.ExecuteNonQuery();

               

                //插入数据二

                insertData.CommandText = "insert into TestTBL values(@id, @胡作非为)";

                insertData.Parameters.Clear();

                insertData.Parameters.Add("@id", FbDbType.Integer).Value = 2;

                insertData.Parameters.Add("@胡作非为", FbDbType.VarChar, 20).Value = "李四";

                insertData.ExecuteNonQuery();

                insertData.Dispose();

                MessageBox.Show("插入数据成功!");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

        privatevoidbtnReadData_Click(object sender, EventArgs e)

        {

            //读取数据

            try

            {

                FbCommand readData = myConnection.CreateCommand();

                readData.CommandText = "select * from TestTBL";

                FbDataReader Reader = readData.ExecuteReader();

                while (Reader.Read())

                {

                    string str_Temp = Reader.GetString(0);

                    MessageBox.Show(str_Temp);

                    str_Temp =Reader.GetString(1);

                    MessageBox.Show(str_Temp);

                }

                readData.Dispose();

                MessageBox.Show("读取数据成功!");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

 

        privatevoidbtnConnectionClose_Click(object sender, EventArgs e)

        {

            //关闭连接

            try

            {

                myConnection.Close();

                MessageBox.Show("连接已关闭!");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

    }

}

测试成功

但下面问题未解决:只要打开一次数据库,无论关不关闭连接,都会出现?谁能给出个原因啊!

猜你喜欢

转载自blog.csdn.net/u013727899/article/details/80233447