DataTable更新数据库记录

lanxing106 2008-09-01 02:31:14
有数据的DataTable如何更新到数据库中去,我用的是Oracle!请给个完整的示例代码!
...全文
210 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhbxzc1 2008-09-04
  • 打赏
  • 举报
回复
string SqlString = "UPDATE advertisement SET codename =:codename,content =:content,initdate=:initdate,finaldate=:finaldate WHERE codeid ='"+codeid+"'";
即使把后面的codeid改成:codeid也不行

ORA-01036: 非法的变量名/编号

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OracleClient.OracleException: ORA-01036: 非法的变量名/编号


源错误:


行 71: cmd.Parameters.Add(new OracleParameter("finaldate",finaldate));
行 72:
行 73: cmd.ExecuteReader();
行 74: //执行修改所影响的记录数
行 75: //int rowsAffected = 0;

hebeijg 2008-09-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lanxing106 的回复:]
我是新手,希望能给个完整的示例。我的SQL语句是需要传参的
[/Quote]

呵呵
yjlove51 2008-09-01
  • 打赏
  • 举报
回复
OracleDataAdapter da = new OracleDataAdapter(com);
da.Fill(Table);
OracleCommandBuilder ocb = new OracleCommandBuilder(da);
da.Update();


上面的Table的列必须和数据库列名一致.
yjlove51 2008-09-01
  • 打赏
  • 举报
回复
OracleDataAdapter da = new OracleDataAdapter(com);
da.Fill(Table);
OracleCommandBuilder ocb = new OracleCommandBuilder(da);
lanxing106 2008-09-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yjlove51 的回复:]
private void Button1_Click(object sender, System.EventArgs e)
{
string ConnectionString="Data Source=sky;user=system;password=manager;";
Using(OracleConnection conn=new OracleConnection(ConnectionString))
{
conn.Open();
OracleCommand cmd=conn.CreateCommand();
cmd.CommandText="update table set bb=:bb,cc=:cc.....";//在这儿写sql语句
com.Parameters.Add(new OracleParameter("bb…
[/Quote]

我的数据量很大,这样一次一次的插入会非常慢,我说的是用DataTable将数据封装起来,然后插入数据库,要传参数,我就是这里不会写了


public void UpdateDataTable(DataTable DT,DateTime date)
{

OracleConnection Con = new OracleConnection(getConnectionStr(date.ToString("yyyy-MM-dd")));
string strSQL ="select * from QZDATA.QZ_CP_312_90_DAYRANGE where STATIONID=:stationId and POINTID=:pointId and ITEMID=:itemId and STARTDATE>=:startDate and STARTDATE<=:endDate";
if (Con.State == ConnectionState.Closed)
{
Con.Open();
}
try
{
SqlCommand Cmd = new SqlCommand(strSQL, Con);

//传参数这里应该怎么写

SqlDataAdapter Dad = new SqlDataAdapter(Cmd);
Dad.Update(DT);

Con.Close();

}
catch (SqlException ex)
{
throw ex;
}
}
hipoom 2008-09-01
  • 打赏
  • 举报
回复
楼上写的很详细.最好还是用存储过程.
yjlove51 2008-09-01
  • 打赏
  • 举报
回复
private void Button1_Click(object sender, System.EventArgs e)
{
string ConnectionString="Data Source=sky;user=system;password=manager;";
Using(OracleConnection conn=new OracleConnection(ConnectionString))
{
conn.Open();
OracleCommand cmd=conn.CreateCommand();
cmd.CommandText="update table set bb=:bb,cc=:cc.....";//在这儿写sql语句
com.Parameters.Add(new OracleParameter("bb", this.txtname.text));
com.Parameters.Add(new OracleParameter("cc", this.txtpassword.text));
cmd.ExecuteReader();
}

lanxing106 2008-09-01
  • 打赏
  • 举报
回复
我是新手,希望能给个完整的示例。我的SQL语句是需要传参的
laodan 2008-09-01
  • 打赏
  • 举报
回复
楼上说的不错
wxg22526451 2008-09-01
  • 打赏
  • 举报
回复
用DbDataAdapter.Update 方法 (DataTable)
MSDN:
下面的示例使用派生类 OleDbDataAdapter 来更新数据源。

public DataSet CreateCmdsAndUpdate(string connectionString,
string queryString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(queryString, connection);
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

connection.Open();

DataSet customers = new DataSet();
adapter.Fill(customers);

//code to modify data in dataset here

adapter.Update(customers);

return customers;
}
}



greystar 2008-09-01
  • 打赏
  • 举报
回复
什么数据库是不重要的.
你要使用数据适配器来解决这个问题.
行者无疆-Kevin 2008-09-01
  • 打赏
  • 举报
回复
数据填充技术.
lanxing106 2008-09-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yfqvip 的回复:]
今天怎么全是要代码的啊,嗨...没落了...
[/Quote]
老大 请帮忙看一下吧
满衣兄 2008-09-01
  • 打赏
  • 举报
回复
今天怎么全是要代码的啊,嗨...没落了...

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧