如题!
oracle中的表:tickets ,表中有:ticketnum ,ticketid ,subject 等参数。我在winform中 添加了三个文本框,分别是对ticketnum,ticketid,subject 参数的输入,然后想通过《确定》按钮,按确定后就可以把输入的值插入更新到oracle中的tickets表中。请问各位大虾如何操作!谢谢拉!
oracle中的表:tickets ,表中有:ticketnum ,ticketid ,subject 等参数。我在winform中 添加了三个文本框,分别是对ticketnum,ticketid,subject 参数的输入,然后想通过《确定》按钮,按确定后就可以把输入的值插入更新到oracle中的tickets表中。请问各位大虾如何操作!谢谢拉!
解决方案 »
- ComboBox数据绑定
- C#旋转图形的算法
- winform动态按钮控件 拖放后 自动排序, 有源代码
- 在下面的代码public Item(string valor, float inicio, float fin) 后面的: this(valor)表示什么意思?
- windows2008 为什么没有3D切换效果?
- Winform中如何让datagridview 自适应高度
- 面向对象 多态 是怎么一回事?
- 将xml文件读入哈希表
- 试图运行一个项目时出错:未能加载文件或者程序集"XXX"或它的某一个加载项
- 程序打包后在别的机子上不能运行,Help!!!!!!!
- 这段代码究竟哪里出问题了?
- 捕捉Wm_MouseHover和Wm_MouseLeave事件无效
引用在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 文件夹下
System.Data.OracleClient.dll 类库 ,就可以对Oracle数据库执行插入、删除、更新操作了。
1. public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params OracleParameter[] commandParameters) {
OracleCommand cmd = new OracleCommand();
using (OracleConnection connection = new OracleConnection(connectionString)) {
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
2. private static void PrepareCommand(OracleCommand cmd, OracleConnection conn, OracleTransaction trans, CommandType cmdType, string cmdText, OracleParameter[] commandParameters) {
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
cmd.CommandType = cmdType;
if (trans != null)
cmd.Transaction = trans;
if (commandParameters != null) {
foreach (OracleParameter parm in commandParameters)
cmd.Parameters.Add(parm);
}
}
-----调用------
3.
private const string SQL_TAKE_INVENTORY = "UPDATE Inventory SET Qty = Qty - :Quantity{0} WHERE ItemId = :ItemId{0}";
4.
public void TakeStock(LineItemInfo[] items) {
int numberOfParameters = 2 * items.Length;
OracleParameter[] completeOrderParms = new OracleParameter[numberOfParameters];
StringBuilder finalSQLQuery = new StringBuilder("BEGIN ");
int index = 0;
int i = 1;
foreach (LineItemInfo item in items) {
ompleteOrderParms[index] = new OracleParameter(":Quantity" + i,OracleType.Number);
completeOrderParms[index++].Value = item.Quantity;
completeOrderParms[index] = new OracleParameter(":ItemId" + i, OracleType.Char, 10);
completeOrderParms[index++].Value = item.ItemId;
finalSQLQuery.Append(string.Format(SQL_TAKE_INVENTORY, i));
finalSQLQuery.Append("; ");
i++;
}
finalSQLQuery.Append("END;");
OracleHelper.ExecuteNonQuery (OracleHelper.ConnectionStringInventoryDistributedTransaction, CommandType.Text, finalSQLQuery.ToString(), completeOrderParms);
}
OracleCommand cmd = new OracleCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 文件夹下 System.Data.OracleClient.dll 类库 就可以对Oracle数据库执行插入、删除、更新操作了。
在App.config中配置 <add key="Oracle" value="Data Source=xxx;User ID=xxx;Password=xxx"/>
public System.Data.OracleClient.OracleConnection cnn;
/// <summary>
/// 打开数据库连接
/// </summary>
public void Open()
{
cnn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["Oracle"]);
cnn.Open();
}
/// <summary>
/// 打开数据库连接,返回cnn
/// </summary>
public OracleConnection OpenCnn()
{
cnn=new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["Oracle"]);
cnn.Open();
return(cnn);
}
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
cnn.Close();
}
/// <summary>
/// 返回DataSet
/// </summary>
/// <param name="CmdString"></param>
/// <param name="TableName"></param>
/// <returns></returns>
public DataSet GetDataSet(string CmdString,string TableName)
{
Open();
OracleDataAdapter myDa =new OracleDataAdapter();
myDa.SelectCommand = new OracleCommand(CmdString,cnn);
DataSet myDs =new DataSet();
myDa.Fill(myDs,TableName);
Close();
return myDs;
}
/// <summary>
/// 返回OleDbDataReader
/// </summary>
/// <param name="CmdString"></param>
/// <returns></returns>
public OracleDataReader GetDataReader(string CmdString)
{
Open();
OracleCommand myCmd =new OracleCommand(CmdString,cnn);
OracleDataReader myDr =myCmd.ExecuteReader();
return myDr;
}
/// <summary>
/// 返回影响数据库的行数
/// </summary>
/// <param name="CmdString">插入、修改、删除SQL语句</param>
/// <returns></returns>
public int ExecuteSQL(string CmdString)
{
Open();
OracleCommand myCmd =new OracleCommand(CmdString,cnn);
int Cmd =myCmd.ExecuteNonQuery();
Close();
return Cmd;
}
/// <summary>
/// 邦定DroDownList
/// </summary>
/// <param name="DroDList"></param>控件名
/// <param name="sql"></param>连接字符串
/// <param name="TableName"></param>表名
/// <param name="DataTextFd"></param>提供文本内容的数据源字段
/// <param name="DataValueFd"></param>为列表项提供值的数据源字段
public void DroList(DropDownList DroDList,string sql,string TableName,string DataTextFd,string DataValueFd)
{
Open();
OracleDataAdapter myDa =new OracleDataAdapter(sql,cnn);
myDa.SelectCommand.CommandType = CommandType.Text;
DataSet myDs =new DataSet();
try
{
myDa.Fill(myDs,TableName);
DroDList.DataSource = myDs.Tables[TableName];
DroDList.DataTextField = DataTextFd;
DroDList.DataValueField = DataValueFd;
DroDList.DataBind();
}
catch(Exception e)
{
Response.Write(e.Message);
}
finally
{
Close();
}
}
{
using(OracleCommand cmd=new OracleCommand("insert into tb values(:a,:b,:c,....)",con))
{
con.open();
oracleparameter param={
new oracleparameter(":a",dbtype.varchar),
new oracleparameter(":b",dbtype.blob),
......
cmd.parameters.add(param[0]);
cmd.parameters.add(param[1]);
.....
cmd.exenonquery();
messagebox.show("成功!");
}}
}
大概就是这样子了!