Encord Active可以管理本地数据集嘛_字节数组

一、关于数据库的操作

Encord Active可以管理本地数据集嘛_字节数组

1.数据库连接

Encord Active可以管理本地数据集嘛_字节数组

     有2种:

Encord Active可以管理本地数据集嘛_字节数组

               第一种:古老的方法(较为死板,不利于灵活操作),即用OracleConnection的类来连接

Encord Active可以管理本地数据集嘛_字节数组

string mysqlstr ="user id = xal;data source = xal;password = xal";
                                OracleConnection mycnn = new OracleConnection(mysqlstr);
                                mycnn.open();

Encord Active可以管理本地数据集嘛_字节数组

               第二种:新式的方法(使用较为灵活),即利用OracleConnectoinStringBuilder类来连接

Encord Active可以管理本地数据集嘛_字节数组

   

OracleConnectionStringBuilder OcnnStrB = new OracleConnectionStringBuilder;
                              OCnnStrB.DataSource = "xal";
                              OCnnStrB.UserID = "xal";
                              OCnnStrB.Password = "xal";
                               myCnn = new OracleConnection(OCnnStrB.ConnectionString);
                              myCnn.open();

Encord Active可以管理本地数据集嘛_字节数组


Encord Active可以管理本地数据集嘛_字节数组

2.事务操作

Encord Active可以管理本地数据集嘛_字节数组

myConn.open();
         OracleCommand insertComm = new OracleCommand();
                insertComm.Connection = myCnn;
                insertComm.Transaction = myCnn.BeginTransaction();
    try
        
{
        事务操作语句;
         insertComm.Transaction.Commit();
        }
    catch(exption ex)
        
{
        insertComm.Transaction.Rollback();
        MessageBox(ex.Message);
        }
    finally
        
{
        myConn.close();
        }

Encord Active可以管理本地数据集嘛_字节数组


Encord Active可以管理本地数据集嘛_字节数组

3.创建命令参数

Encord Active可以管理本地数据集嘛_字节数组

private OracleParameter CreateOraParam(string ParamName, object ParamValue)
        
{
            OracleParameter Result = new OracleParameter();
            Result.ParameterName = ParamName;
            if (ParamValue != null)
            
{
                Result.Value = ParamValue;
            }
            else
            
{
                Result.Value = DBNull.Value;
            }
            return Result;
        }

Encord Active可以管理本地数据集嘛_字节数组

       这样的话,当要对数据库操作时就可以:

insertComm.CommandText = "insert into TESTADODOTNET (ID, NAME, AGE, PIC) values (:pID, :pName, :pAge, :pPic)";
                    insertComm.Parameters.Add(CreateOraParam("pID", (txtID.Text.Trim() != "") ? txtID.Text.Trim() : null));
                    insertComm.Parameters.Add(CreateOraParam("pName", (txtName.Text.Trim() != "") ? txtName.Text.Trim() : null));
                    insertComm.Parameters.Add(CreateOraParam("pAge", (txtAge.Text.Trim() != "") ? txtAge.Text.Trim() : null));

Encord Active可以管理本地数据集嘛_字节数组


Encord Active可以管理本地数据集嘛_字节数组

4.数据集的浏览(例:将结果显示在comboBox1中)

Encord Active可以管理本地数据集嘛_字节数组

OracleDataAdapter oda = new OracleDataAdapter(selectCommand);
                    DataTable newtable = new DataTable();
                    oda.Fill(newtable);
         foreach (DataRow dr in newtable.Rows)  //共有newtable.rows.count条记录
                    
{
                comboBox1.Items.Add(dr[0].ToString());
            }

Encord Active可以管理本地数据集嘛_字节数组


Encord Active可以管理本地数据集嘛_字节数组

5.设置输入只能是数字(例:现在往textBox1中输入。如只能输入字母的方法类似)

Encord Active可以管理本地数据集嘛_字节数组

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)//属性中的事件
            
{
                           e.Handled = !((Char.IsNumber(e.KeyChar)) || ((Keys)e.KeyChar == Keys.Back));
            }

Encord Active可以管理本地数据集嘛_字节数组


Encord Active可以管理本地数据集嘛_字节数组

6.Form窗口关闭时引发的事件:弹出一个确定退出的对话框 

Encord Active可以管理本地数据集嘛_字节数组

private void form1_FormClosing(object sender, FormClosingEventArgs e)
            
{
                         if (MessageBox.Show("是否退出系统?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    
{
                                    e.Cancel = false;
                    }
                         else
                    
{
                            e.Cancel = true;
                    }
                 }

Encord Active可以管理本地数据集嘛_字节数组


Encord Active可以管理本地数据集嘛_字节数组

7.OracleParameter的用法

Encord Active可以管理本地数据集嘛_字节数组

        第一步:先创建命令参数

Encord Active可以管理本地数据集嘛_字节数组

    

Encord Active可以管理本地数据集嘛_字节数组

private OracleParameter CreateOraParam(string ParamName, object ParamValue)
        
{
            OracleParameter Result = new OracleParameter();
            Result.ParameterName = ParamName;
            if (ParamValue != null)
            
{
                Result.Value = ParamValue;
            }
            else
            
{
                Result.Value = DBNull.Value;
            }
            return Result;
        }
       第二步:写SQL语句,并调用第一步的参数(例如::pID是个参数,代表调用insertComm.Parameters.Add中的pID的值)
           insertComm.CommandText = "insert into TESTADODOTNET (ID, NAME, AGE, PIC) values (:pID, :pName, :pAge, :pPic)";
    insertComm.Parameters.Add(CreateOraParam("pID", (txtID.Text.Trim() != "") ? txtID.Text.Trim() : null));
                insertComm.Parameters.Add(CreateOraParam("pName", (txtName.Text.Trim() != "") ? txtName.Text.Trim() : null));
                insertComm.Parameters.Add(CreateOraParam("pAge", (txtAge.Text.Trim() != "") ? txtAge.Text.Trim() : null));

         第三步:添加pictureBox1图片的二进制流字段pAge
                        //创建字节数组用于给IMAGE字段赋值,fileLength是指所选的文件的大小
                        byte[] tmpImage = new byte[fileLength];
                        //根据字节数组创建内存流,之后对该流的操作将会影响字节数组的内容
                        MemoryStream curStream = new MemoryStream(tmpImage);
                        //把控件内显示的图形写入到流中,需强制指定格式
                        pictureBox1.Image.Save(curStream, curImageFormat);//curImageFormat前面指定的图片格式
                        insertComm.Parameters.Add(CreateOraParam("pPic", tmpImage));


Encord Active可以管理本地数据集嘛_字节数组