c#中保存datagridview中的数据时报错“动态SQL生成失败。找不到关键信息”

最爱我家蕾蕾 2015-12-29 12:40:29
请帮忙看一下是什么原因呢:谢谢!




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;

namespace 订单系统
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private DataSet ds;
private OracleDataAdapter oda;
private OracleConnection con;
private OracleCommand cmd;

private void Form1_Load(object sender, EventArgs e)
{
try
{
string conString = "User Id=dingzi; password=dingzi;" + "Data Source=localhost:1521/orcl; Pooling=false;";
con = new OracleConnection();
con.ConnectionString = conString;
con.Open();
cmd = con.CreateCommand();
cmd.CommandText = "select * from stock order by 订货日期 desc";
OracleDataReader reader = cmd.ExecuteReader();
ds = new DataSet();
oda = new OracleDataAdapter(cmd.CommandText, con);
oda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.Columns["订货日期"].DefaultCellStyle.Format = "yyyy/MM/dd HH:mm:ss";//此句要放在ataGridView1.DataSource之后;
con.Close();
}
catch (Exception E)
{ MessageBox.Show(E.Message); }
}

private void button1_Click(object sender, EventArgs e)
{
OracleCommandBuilder cx = new OracleCommandBuilder(oda);
oda.Update(ds);

con.Open();
OracleCommand cmd = new OracleCommand("update stock set 订货日期=sysdate where 订货日期 is null", con);
cmd.ExecuteNonQuery();
MessageBox.Show("保存成功", "提示");

//更新数据后刷新数据
cmd = con.CreateCommand();
cmd.CommandText = "select * from stock order by 订货日期 desc";
OracleDataReader reader = cmd.ExecuteReader();
ds = new DataSet();
oda = new OracleDataAdapter(cmd.CommandText, con);
oda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
con.Close();
}
}
}


...全文
307 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
最爱我家蕾蕾 2016-03-25
  • 打赏
  • 举报
回复
这个错误是因为没有主键,已经解决了谢谢大家
  • 打赏
  • 举报
回复
的确你的reader写了干嘛的,根本就没用取得结果,然后又直接用adapter取数据了
Justin-Liu 2015-12-30
  • 打赏
  • 举报
回复
Reader是做什么用的?
  • 打赏
  • 举报
回复
DataReader没关闭,只关闭Connection是不够的
最爱我家蕾蕾 2015-12-29
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
DataReader没关闭,只关闭Connection是不够的
我试着在form1_load和button1_click里加reader.Close(),没效果,请问你具体指的是哪里要关闭reader?

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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