c#往sql資料庫欄位中插入二進位制檔案的三種方法,網路測試程式一別人好象成功了.我怎麼都測試不成功.同事解說是insertsql語句是字串.所以不能把二進位制內容跟字段聯合起來傳遞給sql2000
//建立乙個sqlconnection物件
string strcon = "initial catalog='hmmisdata';server='192.168.1.180';user id='使用者名稱';password='密碼';persist security info=true";
sqlconnection myconn = new sqlconnection ( strcon ) ;
//測試方法一:使用sql語句插入二進位製欄位,測試失敗
/*string insertsql="insert into ep_hmsoftofficedoclist(documenttype,documentdate,documentmanager,documentdepartment,documenttitle,documentcontent,binaryfiledata,binaryfiletype,binaryfilelength,binaryfilepath,addusername,addusertime,adduserip) ";
insertsql=insertsql+ " values('"+documenttype+"','"+documentdate+"','"+documentmanager+"','"+documentdepartment+"','"+documenttitle+"','"+documentcontent+"',"+@binaryfiledata+",'"+binaryfiletype+"',"+binaryfilelength+",'"+binaryfilepath+"','"+stradduser+"','"+straddtime+"','"+straddip+"')" ;
sqlcommand insertcommand= new sqlcommand();
insertcommand.parameters.add("@binaryfiledata",sqldbtype.image);
insertcommand.parameters["@binaryfiledata"].value=binaryfiledata;
insertcommand.commandtype=commandtype.text;
insertcommand.commandtext=insertsql;
insertcommand.connection=myconn;
insertcommand.connection.open();
insertcommand.executenonquery();
*///測試方法二:使用儲存過程插入二進位製欄位,測試成功
/*sqlcommand insertcommand = new sqlcommand("sp_hmsoft_officedoc_add",myconn);
insertcommand.commandtype = commandtype.storedprocedure;
insertcommand.parameters.add(new sqlparameter("@documenttype", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@documentdate", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@documentmanager", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@documentdepartment", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@documenttitle", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@documentcontent", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@binaryfiledata", sqldbtype.image));
insertcommand.parameters.add(new sqlparameter("@binaryfiletype", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@binaryfilelength", sqldbtype.int));
insertcommand.parameters.add(new sqlparameter("@binaryfilepath", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@addusername", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@addusertime", sqldbtype.nvarchar, 50));
insertcommand.parameters.add(new sqlparameter("@adduserip", sqldbtype.nvarchar, 50));
insertcommand.parameters["@documenttype"].value=documenttype;
insertcommand.parameters["@documentdate"].value=documentdate;
insertcommand.parameters["@documentmanager"].value=documentmanager;
insertcommand.parameters["@documentdepartment"].value=documentdepartment;
insertcommand.parameters["@documenttitle"].value=documenttitle;
insertcommand.parameters["@documentcontent"].value=documentcontent;
insertcommand.parameters["@binaryfiledata"].value=binaryfiledata;
insertcommand.parameters["@binaryfiletype"].value=binaryfiletype;
insertcommand.parameters["@binaryfilelength"].value=binaryfilelength;
insertcommand.parameters["@binaryfilepath"].value=binaryfilepath;
insertcommand.parameters["@addusername"].value=stradduser;
insertcommand.parameters["@addusertime"].value=straddtime;
insertcommand.parameters["@adduserip"].value=straddip;
insertcommand.connection.open();
insertcommand.executenonquery();
*///測試方法三:使用dataset插入二進位製欄位,測試成功
myconn.open();
dataset tempdataset=new dataset();
sqldataadapter tempadapter = new sqldataadapter("select * from ep_hmsoftofficedoclist where 1=0", myconn);
sqlcommandbuilder tempbuilder=new sqlcommandbuilder(tempadapter);
tempadapter.fill(tempdataset);
//'插入一條記錄
datarow tempdatarow = tempdataset.tables[0].newrow();
tempdatarow["documenttype"] =documenttype;
tempdatarow["documentdate"] =documentdate;
tempdatarow["documentmanager"] =documentmanager;
tempdatarow["documentdepartment"] =documentdepartment;
tempdatarow["documenttitle"] =documenttitle;
tempdatarow["documentcontent"] =documentcontent;
tempdatarow["binaryfiledata"] =binaryfiledata;
tempdatarow["binaryfiletype"] =binaryfiletype;
tempdatarow["binaryfilelength"] =binaryfilelength;
tempdatarow["binaryfilepath"] =binaryfilepath;
tempdatarow["addusername"] =stradduser;
tempdatarow["addusertime"] =straddtime;
tempdatarow["adduserip"] =straddip;
tempdataset.tables[0].rows.add(tempdatarow);
tempadapter.update(tempdataset);
//關閉連線
myconn.close ( ) ;
往資料庫中插入資料
private materialenterstore entitymes 入庫表 private materialenterdetail entitymed 入庫明細表 transactionmanager tran datarepository.provider.createtransaction...
C 中往資料庫插入空值的問題
在用c 往資料庫裡面插入記錄的時候,可能有的字段你不賦值,那麼這個欄位的值就為null,如果按一般想法的話,這個值會被資料庫接受,然後在數 據表裡面顯示為null,實際上這就牽扯到乙個型別的問題,c 中的null於sql中的null是不一樣的,sql中的null用c 表示出來就 是dbnull.va...
C 中往資料庫插入空值的問題
在用c 往資料庫裡面插入記錄的時候,可能有的字段你不賦值,那麼這個欄位的值就為null,如果按一般想法的話,這個值會被資料庫接受,然後在數 據表裡面顯示為null,實際上這就牽扯到乙個型別的問題,c 中的null於sql中的null是不一樣的,sql中的null用c 表示出來就 是dbnull.va...