国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

c# ,在Oracle 中,對 blob 類型對象的操作

2024-07-21 02:18:28
字體:
來源:轉載
供稿:網友
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 嘗試的情況是,提供一個text 框,讓用戶輸入,允許輸入非常多的值,保存到oracle 數據庫中。 為了能夠大量數據保存,因此,對字段類型設置為 blob 型 。
    網絡上的類似幫助太復雜了,發現如果只是文件內的操作,還是比較簡單的。
    思路:
    1。先將text 文本轉變成2進制
    byte[] ddd;
    ddd = system.text.encoding.unicode.getbytes(this.textbox1.text);

    2。再將該2進制存入數據庫中,發現這種對數據庫的訪問方法可行。
    cmd.parameters.add 。。。
    cmd.executenonquery();

    表結構如下:
    create table xlutest
    (
    hhhh blob,
    gggg varchar2(10)
    )
    tablespace system
    pctfree 10
    pctused 40
    initrans 1
    maxtrans 255
    storage
    (
    initial 64k
    minextents 1
    maxextents unlimited
    )


    c# 全部winform 代碼如下 :
    using system;
    using system.drawing;
    using system.collections;
    using system.componentmodel;
    using system.windows.forms;
    using system.data;
    using system.data.oledb;
    using system.io;

    namespace blob
    {
    /// <summary>
    /// form1 的摘要說明。
    /// </summary>
    public class form1 : system.windows.forms.form
    {
    private system.windows.forms.textbox textbox1;
    private system.windows.forms.button button1;
    private system.windows.forms.button button2;
    private system.windows.forms.button button3;
    /// <summary>
    /// 必需的設計器變量。
    /// </summary>
    private system.componentmodel.container components = null;

    public form1()
    {
    //
    // windows 窗體設計器支持所必需的
    //
    initializecomponent();

    //
    // todo: 在 initializecomponent 調用后添加任何構造函數代碼
    //
    }

    /// <summary>
    /// 清理所有正在使用的資源。
    /// </summary>
    protected override void dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null)
    {
    components.dispose();
    }
    }
    base.dispose( disposing );
    }

    #region windows 窗體設計器生成的代碼
    /// <summary>
    /// 設計器支持所需的方法 - 不要使用代碼編輯器修改
    /// 此方法的內容。
    /// </summary>
    private void initializecomponent()
    {
    this.textbox1 = new system.windows.forms.textbox();
    this.button1 = new system.windows.forms.button();
    this.button2 = new system.windows.forms.button();
    this.button3 = new system.windows.forms.button();
    this.suspendlayout();
    //
    // textbox1
    //
    this.textbox1.anchor = system.windows.forms.anchorstyles.top;
    this.textbox1.location = new system.drawing.point(40, 48);
    this.textbox1.multiline = true;
    this.textbox1.name = "textbox1";
    this.textbox1.size = new system.drawing.size(576, 272);
    this.textbox1.tabindex = 0;
    this.textbox1.text = "textbox1";
    //
    // button1
    //
    this.button1.location = new system.drawing.point(240, 336);
    this.button1.name = "button1";
    this.button1.tabindex = 1;
    this.button1.text = "save";
    this.button1.click += new system.eventhandler(this.button1_click);
    //
    // button2
    //
    this.button2.location = new system.drawing.point(408, 344);
    this.button2.name = "button2";
    this.button2.tabindex = 2;
    this.button2.text = "read";
    this.button2.click += new system.eventhandler(this.button2_click);
    //
    // button3
    //
    this.button3.location = new system.drawing.point(88, 336);
    this.button3.name = "button3";
    this.button3.tabindex = 3;
    this.button3.text = "update";
    this.button3.click += new system.eventhandler(this.button3_click);
    //
    // form1
    //
    this.autoscalebasesize = new system.drawing.size(6, 14);
    this.clientsize = new system.drawing.size(648, 397);
    this.controls.add(this.button3);
    this.controls.add(this.button2);
    this.controls.add(this.button1);
    this.controls.add(this.textbox1);
    this.name = "form1";
    this.text = "form1";
    this.resumelayout(false);

    }
    #endregion

    /// <summary>
    /// 應用程序的主入口點。
    /// </summary>
    [stathread]
    static void main()
    {
    application.run(new form1());
    }

    private void button1_click(object sender, system.eventargs e)
    {

    string cnnstr = "provider=oraoledb.oracle;data source=yourdb;user id=xxxx;password=xxxx;";
    oledbconnection con = new oledbconnection(cnnstr);
    try
    {
    con.open();
    }
    catch
    {}
    oledbcommand cmd = new oledbcommand(cnnstr,con);

    cmd.commandtype=commandtype.text;
    cmd.commandtext=cnnstr;

    string txvalue = this.textbox1.text.trim();

    byte[] expbyte = system.text.encoding.unicode.getbytes(txvalue);

    cmd.commandtext = " insert into xlutest ( hhhh ) values (:hhhh) ";

    cmd.parameters.add("hhhh",system.data.oledb.oledbtype.binary,expbyte.length);
    cmd.parameters [0].value = expbyte;

    try
    {
    cmd.executenonquery();
    messagebox.show("ok");
    }
    catch ( system.exception e1 )
    {
    messagebox.show(e1.message );
    }


    }

    public void execwithreturnbinary(string cmdtext,string binarycontent,byte[] byteblob)
    {

    string cnnstr = "provider=oraoledb.oracle;data source=yourdb;user id=xxxx;password=xxxx;";
    oledbconnection con = new oledbconnection(cnnstr);
    try
    {
    con.open();
    }
    catch
    {}
    oledbcommand cmd = new oledbcommand(cmdtext,con);

    cmd.commandtype=commandtype.text;
    cmd.commandtext=cmdtext;
    cmd.parameters.add("str",system.data.oledb.oledbtype.varchar,10).value = "sdfsddf";
    cmd.parameters.add(binarycontent,system.data.oledb.oledbtype.binary ,byteblob.length).value= byteblob;
    cmd.executenonquery();
    }


    private void save()
    {
    // byte[] abyte;
    // string str = this.textbox1.text;
    // system.io.filestream fs = new filestream("c://xxx.txt",system.io.filemode.open);
    // system.io.binaryreader br = new binaryreader(fs);
    // abyte = br.readbytes(fs.length);
    // br.close();


    }

    private void button2_click(object sender, system.eventargs e)
    {
    string strsql = "select gggg,hhhh from xlutest ";
    string cnnstr = "provider=oraoledb.oracle;data source=yourdb;user id=xxxx;password=xxxx;";
    oledbconnection con = new oledbconnection(cnnstr);
    try
    {
    con.open();
    }
    catch
    {}
    oledbcommand cmd = new oledbcommand(strsql,con);
    system.data.oledb.oledbdatareader dr = cmd.executereader();
    while ( dr.read())

    {
    string dd =dr ["gggg"].tostring();
    byte[] ooo = (byte[])dr["hhhh"];
    string str ;
    str = system.text.encoding.unicode.getstring(ooo);
    this.textbox1.text =str;

    }
    }

    private void button3_click(object sender, system.eventargs e)
    {
    //decode
    // string str ;
    // str = system.text.encoding.unicode.getstring(ddd);

    string cnnstr = "provider=oraoledb.oracle;data source=yourdb;user id=xxxx;password=xxxx;";
    oledbconnection con = new oledbconnection(cnnstr);

    byte[] ddd;
    ddd = system.text.encoding.unicode.getbytes(this.textbox1.text);
    string strsql = "update xlutest set hhhh=:ddd ";
    try
    {
    con.open();
    }
    catch
    {}
    oledbcommand cmd = new oledbcommand(cnnstr,con);

    cmd.commandtype=commandtype.text;
    cmd.commandtext=strsql;
    cmd.parameters.add("ddd",system.data.oledb.oledbtype.binary ,ddd.length).value= ddd;
    cmd.executenonquery();
    messagebox.show("ok!");
    }

    }
    }



    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 鲁山县| 凌云县| 万盛区| 古交市| 调兵山市| 凯里市| 大庆市| 东安县| 云阳县| 宜州市| 上虞市| 伊春市| 崇文区| 波密县| 夹江县| 泗水县| 黔西| 那坡县| 中阳县| 深水埗区| 郸城县| 洛川县| 乌拉特后旗| 深圳市| 革吉县| 龙游县| 新安县| 阿坝县| 谢通门县| 贡山| 聂荣县| 岳池县| 遂川县| 麻城市| 安化县| 石首市| 马公市| 泰兴市| 峨山| 乌兰浩特市| 和政县|