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

    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();
            }
        }
    }

    解决问题的提示:

    这个错误是因为没有主键。

  • 相关阅读:
    3组-Alpha冲刺-1/6
    3组 需求分析报告
    结对编程作业
    3组 团队展示
    8组-Alpha冲刺-1/6
    8组 需求分析报告
    刘凌斌 1.3
    结对编程作业
    8组 团队介绍与选题报告
    3组-Alpha冲刺-1/6
  • 原文地址:https://www.cnblogs.com/arxive/p/5945136.html
Copyright © 2011-2022 走看看