c#-C#与数据库的问题,求帮忙

问题描述

C#与数据库的问题,求帮忙


现在我需要将图中的richTextBox2中的五条数据加入到oracle数据库里,需要一条一条的输入,网上百度的都是整个richTextBox2都输入进去,造成了

string connString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.6.161) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist Security Info=True;User Id=zhianguankong2; Password=zhianguankong2123";
OracleConnection conn = new OracleConnection(connString);
try
{
conn.Open();
string sql = "insert into TB_BLACKLIST(VEHID,CARDID) values('VEHID',:CARDID)";
OracleCommand cmd = new OracleCommand(sql, conn);
OracleParameter parn = new OracleParameter(":CARDID", richTextBox2.Text);
cmd.Parameters.Add(parn);
OracleDataReader odr = cmd.ExecuteReader();
while (odr.Read())
{
richTextBox2.Text = (odr.GetOracleString(1).ToString());//输出字段
}
odr.Close();
}
catch (Exception ee)
{
richTextBox2.Text = (ee.Message); //如果有错误,输出错误信息
}
finally
{
conn.Close(); //关闭连接
}
这是我连接数据库的代码,我需要做的是将数据经过AES加密后,插入到数据库黑名单表tb_blacklist。

解决方案

把richTextBox2里的数据拆分为5条,然后放在一个字符串数组里,分别进行加密,保存到数据库中,执行5次insert就没有这个问题了

解决方案二:

你插入的身份证号 等于 整个文本的值,提示很明显,超出你数据库中设置的最大字符长度

解决方案三:

一行一行查出来 然后“,”分割

解决方案四:

参考TextBoxBase.Lines 属性
使用richTextBox2.Lines[行号]可以读取一行数据。

解决方案五:

foreach (string s in richTextBox.Lines)
插入

上次不是回答你了

解决方案六:

参考C#利用ODP.NET往oracle中高效插入百万数据

string[] tempArray = richTextBox2.Lines;

//设置一个数据库的连接串
string connectStr = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.6.161) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)));Persist Security Info=True;User Id=zhianguankong2; Password=zhianguankong2123";
OracleConnection conn = new OracleConnection(connectStr);
OracleCommand command = new OracleCommand();
command.Connection = conn; //到此为止,还都是我们熟悉的代码,下面就要开始喽

//这个参数需要指定每次批插入的记录数
int recc = tempArray.Length;
command.ArrayBindCount = recc;

//在这个命令行中,用到了参数,参数我们很熟悉,但是这个参数在传值的时候
//用到的是数组,而不是单个的值,这就是它独特的地方
command.CommandText = "insert into TB_BLACKLIST(VEHID,CARDID) values('VEHID',:CARDID)";
conn.Open();

//下面定义几个数组,分别表示字段,数组的长度由参数直接给出
string[] CARDID = new string[recc];

// 为了传递参数,不可避免的要使用参数,下面会连续定义
// 从名称可以直接看出每个参数的含义,不在每个解释了
OracleParameter cardIdParam = new OracleParameter("CARDID", OracleDbType.Varchar2);
cardIdParam.Direction = ParameterDirection.Input;
cardIdParam.Value = CARDID;
command.Parameters.Add(cardIdParam);

//在下面的循环中,先把数组定义好,而不是像上面那样直接生成SQL
for (int i = 0; i < recc; i++) {
    CARDID[i] = tempArray.Lines[i]; //可以使用加密函数加密文本
}

//这个调用将把参数数组传进SQL,同时写入数据库
command.ExecuteNonQuery();
时间: 2024-08-30 12:42:37

c#-C#与数据库的问题,求帮忙的相关文章

解决方案-数据库查询优化问题求帮忙

问题描述 数据库查询优化问题求帮忙 查询结果集的时候还要查询本次有多少条数据 使用count的话就考虑sql太复杂,于是没办法使用size,效率又好低 有没遇到相似情况的帮忙提供个解决方案或者思路 解决方案 可写两条sql,一条用来返回数据集,另一条用来返回数据集的记录数 解决方案二: 把结果集保存到内存数据库中,然后再进行count,速度会非常快的 解决方案三: 等于是把查询出来的记录集放到内存中,然后再用其他编程方式来count,而不是直接用sql的 解决方案四: 两条SQL语句,先得到记录

mysql-MYSQL数据库问题,求帮忙

问题描述 MYSQL数据库问题,求帮忙 最近使用MYSQL,但是,不知道为什么,我联网的话MYSQL服务就可以开启,如果断网MYSQL服务就无法开启,手动去开启的话会说:mysql服务无法启动(本地) 错误代码:1067.这个时候我把网连上,他又可以正常启动了...请问是什么原因?我百度了,貌似没人和我一样的问题,难道MYSQL要联网才能用?对了,我就是在自己本地电脑用MYSQL,没有什么远程连接的...哎,搞了一天了,烦死了,百度google都没找到... 解决方案 没人吗?来人啊!!!!!!

sql server-数据库基础问题求帮忙

问题描述 数据库基础问题求帮忙 取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的. select top 10 * from T_number where id >(select max(id) from (select top 30 id from T_number)as T_number ) 为什么我取到的max(id)值是全表中最大的不是前30条最大的 解决方案 row_number(),用这个取得行号,然后从这个结果集中去你要的范围,比

ofbiz+oracle-刚学习ofbiz,将ofbiz的数据库改成oracle时,出现如下错误,求帮忙

问题描述 刚学习ofbiz,将ofbiz的数据库改成oracle时,出现如下错误,求帮忙 刚学习ofbiz ,想将ofbiz数据库改成oracle,我改了配置文件之后,ant load-demo ,没有报错,然后ant start后抱如下错,改怎么解决啊.谢谢 2013-12-11 13:41:21,694 (catalina-startup-0) [ UtilXml.java:1060:ERROR] XmlFileLoader: File file:/E:/Project 10/ofbiz/s

conn-导入不进去数据库。求帮忙看看。搞了好久。

问题描述 导入不进去数据库.求帮忙看看.搞了好久. package web; import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException; import javax.servlet.ServletExceptio

sql server语句问题-sql server数据库语句问题 求大神帮忙解释

问题描述 sql server数据库语句问题 求大神帮忙解释 select * from Stock where sxrq<'CONVERT(varchar(10), GETDATE(), 23)' sxrq是varchar(10)是表中的日期,格式为xxxx-xx-xx,想用getdate()方法获取当前日期,并且转换成了varchar(10)格式也为xxxx-xx-xx,但执行时sxrq<'CONVERT(varchar(10), GETDATE(), 23)'好像没起到作用,求大神解释.

access+visual #-写不进去数据库啊,急,求帮忙看看,教教

问题描述 写不进去数据库啊,急,求帮忙看看,教教 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.OleDb; namespace 专科医院门诊

数据库连接-MyEclipse连接Sql2012数据库问题,求大神帮忙!

问题描述 MyEclipse连接Sql2012数据库问题,求大神帮忙! 解决方案 你的driver写错了,最后面掉了一个字母. 解决方案二: 可以看看这个**http://blog.sina.com.cn/s/blog_8fc52b020101041v.html** 解决方案三: jdbc:sqlserver://localhost:1433;DatabaseName 中 DatabaseName大小写

C#与数据库的问题,求帮忙

问题描述 C#与数据库的问题,求帮忙 现在我需要将图中的richTextBox2中的五条数据加入到oracle数据库里,需要一条一条的输入,网上百度的都是整个richTextBox2都输入进去,造成了 string connString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.6.161) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))