c#保存datagridview中的数据时报错 “动态SQL生成失败。找不到关键信息”
2023-09-14 09:02:24 时间
ilovejinglei 原文 C#中保存datagridview中的数据时报错“动态SQL生成失败。找不到关键信息”
问题描述
相关代码
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(); } } }
解决问题的提示:
这个错误是因为没有主键。
相关文章
- Unity中针对Android Apk的签名验证(C#实现)
- C#特性
- 读写分离子系统 - C# SQL分发子系统(目前只支持ADO.NET)
- C#使用HttpWebRequest和HttpWebResponse上传文件示例
- C#进阶系列——WebApi 跨域问题解决方案:CORS
- C# DataSet.AcceptChanges 方法
- C# 实体类序列化与反序列化二 (DataContractSerializer)
- C# 转义字符
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python
- C# Activator和new的区别
- C# 连接SQL Server数据库的几种方式--server+data source等方式
- C#使用BeginInvoke和EndInvoke异步下载和获取返回结果
- C# 实现二维码
- C# EF使用SqlQuery直接操作SQL查询语句或者存储过程
- C#实验报告上机五
- c#委托与代理
- C# 设计模式(9)装饰者