Здравствуйте,
возникла следующая проблема.
Нарисовал простую форму на C# в MSVC 2005.
DataGridView и две кнопки. Одна загружает данные, другая обновляет.
Программа падает на вызове Update. Возникает InvalidOperationException со словами:
{"Динамическое создание SQL для UpdateCommand не поддерживается для SelectCommand, не возвращающей никаких сведений о столбце ключей."}
Не понимаю как исправить. Пробовал разные способы, через DataTable, но везде одно и тоже возникает. Поиском решений тоже не нашёл.
Прописывать команды вручную явно не хочу.
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OracleClient;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
OracleConnection oraConn = new OracleConnection("Data Source=PRODUCT;Persist Security Info=True;User ID=XXMYUSER;Unicode=True;Password=XXMYPWD;");
OracleDataAdapter orda = null;
OracleCommandBuilder builder = null;
DataSet ds = new DataSet();
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
if (!ds.HasChanges())
return;
DataRow[] rows = ds.Tables[0].Select(null, null, DataViewRowState.ModifiedCurrent);
orda.Update(rows); // <--- тут падение
}
private void button1_Click(object sender, EventArgs e)
{
orda.Fill(ds, "FRM_TOTAL");
dataGridView1.DataSource = ds.Tables[0];
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
oraConn.Close();
}
private void Form1_Load(object sender, EventArgs e)
{
oraConn.Open();
orda = new OracleDataAdapter("select Id, Total_type_name, Total_table_name from FRM_TOTAL", oraConn);
builder = new OracleCommandBuilder(orda); }
}
}
Заранее спасибо.