DataSet ds;
OpenFileDialog openFile = new OpenFileDialog();
openFile.Multiselect = false;
openFile.RestoreDirectory = true;
openFile.Filter = "Text files (*.xls)|*.xls|All files (*.*)|*.*"; if (openFile.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFile.FileName;
ds = ImportExcel(openFile.FileName);//获得Excel
}
else
{
return;
} int odr = 0; OracleConnection conn = new OracleConnection("Data Source=wzinner;Persist Security Info=True;User ID=common;password=common;Unicode=True"); //获得conn连接
try
{
conn.Open();
//OracleCommand com = new OracleCommand(CommandText,conn); //com.CommandText = "insert into em_transfers_t (transfers_id,transfers_OLDLANDNUM)values (:A,:B)"; string queryString = "insert into em_transferss_t (transfers_id,transfers_OLDLANDNUM) values (:A,:B)";
OracleCommand com = new OracleCommand(queryString, conn); int dsLength = ds.Tables[0].Rows.Count;// 获得Execle长度 for (int i = 0; i < dsLength; i++)
{
com.Parameters.Add("A", OracleType.Int32).Value =ds.Tables[0].Rows[i][0];
com.Parameters.Add("B", OracleType.VarChar).Value =ds.Tables[0].Rows[i][1];
odr = com.ExecuteNonQuery();//提交
}
if (odr > 0)
{
MessageBox.Show("成功!");
}
conn.Close();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
像各位所看见的,当我把Execle数据上传成功以后 就把临时表em_transferss_t的em_transferss_t.OLDLANDNUM 数据根据house_id来更新到em_house_t表的em_house_t.OLDLANDNUM 列, 更新成功以后 在把临时表em_transferss_t的数据全部删除. 求助高手 下面的代码是别人告诉我的 不知可行 我不能轻易去试 改会很麻烦`` 也没有清除临时表数据的代码``` 谢谢 各位大虾``` SOS``` if (odr > 0)
{
MessageBox.Show("成功!"); update em_house_t
set em_house_t.OLDLANDNUM=em_transferss_t.OLDLANDNUM
from Temp where em_house_t.house_id !=transferss.house_id
}
OpenFileDialog openFile = new OpenFileDialog();
openFile.Multiselect = false;
openFile.RestoreDirectory = true;
openFile.Filter = "Text files (*.xls)|*.xls|All files (*.*)|*.*"; if (openFile.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFile.FileName;
ds = ImportExcel(openFile.FileName);//获得Excel
}
else
{
return;
} int odr = 0; OracleConnection conn = new OracleConnection("Data Source=wzinner;Persist Security Info=True;User ID=common;password=common;Unicode=True"); //获得conn连接
try
{
conn.Open();
//OracleCommand com = new OracleCommand(CommandText,conn); //com.CommandText = "insert into em_transfers_t (transfers_id,transfers_OLDLANDNUM)values (:A,:B)"; string queryString = "insert into em_transferss_t (transfers_id,transfers_OLDLANDNUM) values (:A,:B)";
OracleCommand com = new OracleCommand(queryString, conn); int dsLength = ds.Tables[0].Rows.Count;// 获得Execle长度 for (int i = 0; i < dsLength; i++)
{
com.Parameters.Add("A", OracleType.Int32).Value =ds.Tables[0].Rows[i][0];
com.Parameters.Add("B", OracleType.VarChar).Value =ds.Tables[0].Rows[i][1];
odr = com.ExecuteNonQuery();//提交
}
if (odr > 0)
{
MessageBox.Show("成功!");
}
conn.Close();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
像各位所看见的,当我把Execle数据上传成功以后 就把临时表em_transferss_t的em_transferss_t.OLDLANDNUM 数据根据house_id来更新到em_house_t表的em_house_t.OLDLANDNUM 列, 更新成功以后 在把临时表em_transferss_t的数据全部删除. 求助高手 下面的代码是别人告诉我的 不知可行 我不能轻易去试 改会很麻烦`` 也没有清除临时表数据的代码``` 谢谢 各位大虾``` SOS``` if (odr > 0)
{
MessageBox.Show("成功!"); update em_house_t
set em_house_t.OLDLANDNUM=em_transferss_t.OLDLANDNUM
from Temp where em_house_t.house_id !=transferss.house_id
}
删除表数据```` 哈哈``` 小样 我也太菜了```
if (odr > 0)
{
MessageBox.Show("成功!");
if (MessageBox.Show("确认要更新吗??", "", MessageBoxButtons.OKCancel) != DialogResult.OK)
{
int co=0;
string sql = "delete from em_transferss_t";
OracleCommand comm = new OracleCommand(sql, conn);
co=comm.ExecuteNonQuery();
if (co > 0)
{
MessageBox.Show("数据未上传");
}
}加了这代码就不行了 为什么?
{
MessageBox.Show("成功!");
if (MessageBox.Show("确认要更新吗??", "", MessageBoxButtons.OKCancel) != DialogResult.OK)
{
int co=0;
string sql = "delete from em_transferss_t";
OracleCommand comm = new OracleCommand(sql, conn);
co=comm.ExecuteNonQuery();
if (co > 0)
{
MessageBox.Show("数据未上传");
}
}
}
conn.Close();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
没有关啊 前面有个conn.open conn.clos 在后面啊
co=comm.ExecuteNonQuery();
co是int,你觉得这俩能=吗?
object obj=xxx
不过你这判断本身就有问题
可以=的啊 只是返回受影响的行数啊
上面也用了一次 都可以的啊 co 定义了的 int co =0;
刚才想调试下,一堆的{}差点没晕死
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OracleClient;
using System.Data.OleDb;
using System.Data.Odbc;
using System.IO;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); } public static DataSet ImportExcel(string file)
{
System.IO.FileInfo fileInfo = new FileInfo(file);
if (!fileInfo.Exists)
return null; string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";
OleDbConnection objConn = new OleDbConnection(strConn);
DataSet dsExcel = new DataSet();
try
{
objConn.Open();
string strSql = "select * from [Sheet3$]";
OleDbDataAdapter odbcExcelDataAdapter = new OleDbDataAdapter(strSql, objConn);
odbcExcelDataAdapter.Fill(dsExcel);
return dsExcel;
}
catch (Exception ex)
{
throw ex;
}
finally
{
objConn.Close();
}
}
private void button4_Click(object sender, EventArgs e)
{
DataSet ds;
OpenFileDialog openFile = new OpenFileDialog();
openFile.Multiselect = false;
openFile.RestoreDirectory = true;
openFile.Filter = "Text files (*.xls)|*.xls|All files (*.*)|*.*"; if (openFile.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFile.FileName;
ds = ImportExcel(openFile.FileName);//获得Excel
}
else
{
return;
} int odr = 0; OracleConnection conn = new OracleConnection("Data Source=wzinner;Persist Security Info=True;User ID=common;password=common;Unicode=True"); //获得conn连接
try
{
conn.Open();
//OracleCommand com = new OracleCommand(CommandText,conn); //com.CommandText = "insert into em_transfers_t (transfers_id,transfers_OLDLANDNUM)values (:A,:B)"; string queryString = "insert into em_transferss_t (transfers_id,transfers_OLDLANDNUM) values (:A,:B)";
OracleCommand com = new OracleCommand(queryString, conn); int dsLength = ds.Tables[0].Rows.Count;// 获得Execle长度 for (int i = 0; i < dsLength; i++)
{
com.Parameters.Add("A", OracleType.Int32).Value =ds.Tables[0].Rows[i][0];
com.Parameters.Add("B", OracleType.VarChar).Value =ds.Tables[0].Rows[i][1];
odr = com.ExecuteNonQuery();//提交
}
if (odr > 0)
{
MessageBox.Show("成功!");
if (MessageBox.Show("确认要更新吗??", "", MessageBoxButtons.OKCancel) != DialogResult.OK)
{
int co=0;
string sql = "delete from em_transferss_t";
OracleCommand comm = new OracleCommand(sql, conn);
co=comm.ExecuteNonQuery();
if (co > 0)
{
MessageBox.Show("数据未上传");
}
}
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
conn.Close();
}
} }
}
co=comm.ExecuteNonQuery();
if (co > 0)
{
MessageBox.Show("数据未上传");
}
co>0应该是有数据上传吧?
if (odr > 0) 这断点odr=? 一直F10往下走没有异常抛出来吗?
我没看出其他哪有问题,你再断点试试吧
if (odr > 0)
{
MessageBox.Show("成功!");
if (MessageBox.Show("确认要更新吗??", "", MessageBoxButtons.OKCancel) != DialogResult.OK)
{
int co=0;
string sql = "delete from em_transferss_t";
OracleCommand comm = new OracleCommand(sql, conn);
co=comm.ExecuteNonQuery();
if (co > 0)
{
MessageBox.Show("数据未上传");
}成功以后才会出提示好吧 我再自己找找 谢谢了哈`
期待高手````
{}
数据库操作类
petshop 中就有oracle操作的