Hi All,
I have a .NET 4.5 Windows Form C# project in which INSERTs, UPDATEs and DELETEs are done within a Datagridview.
What is working is to load via a SELECT statement all data from a SAP Hana database table into the Datagridview.
What is also working is, that when the database table name is simply one word (for example "SAP_HANA_DEMO"."person" ) I can succefully update or insert a record in the "person" table from within the Datagridview.
However, when the SAP HANA table has a longer name like: "SAP_HANA_DEMO"."sap.hana.democontent.epm.data::MD.Employees" I am getting a SQL error that says:
"sql syntax error: incorrect syntax near "." line 1 col 28 (at pos 28)
So the update command "dataAdapter.Update(dt);" is failing, but I do not know why, as the "dataAdapter.Fill(dt);" method is working for the same database table name?
What am I doing wrong or am I missing something? Below is my code.
Thanks a lot for every help!
Best regards
Ercin Nurol
public partial class Form2 : Form
{
private string serverAdresse2;
private string port2;
private string database2;
private string username2;
private string password2;
HanaCommand sqlCommand;
HanaDataAdapter dataAdapter;
HanaCommandBuilder commandBuilder;
System.Data.DataSet sDs;
DataTable dt;
public Form2(string serverAdresse2, string port2, string database2, string username2, string password2)
{
InitializeComponent();
}
//SELECT BUTTON
private void button1_Click(object sender, EventArgs e)
{
string tablename = textBox1.Text;
serverAdresse2 = label1.Text; //= serverAdresse2;
port2 = label2.Text;
database2 = label4.Text;
username2 = label5.Text;
password2 = label3.Text;
using (HanaConnection hanacon = new HanaConnection())
try
{
String sql = ("SELECT * FROM " + tablename + ";");
hanacon.ConnectionString = ("Server=" + serverAdresse2 + ":" + port2 + ";Database=" + database2 + ";UserID=" + username2 + ";Password=" + password2 + ";"+ "Current Schema=SAP_HANA_DEMO");
hanacon.Open();
HanaCommand sqlCommand = new HanaCommand(sql, hanacon);
dataAdapter = new HanaDataAdapter(sqlCommand);
HanaCommandBuilder sBuilder = new HanaCommandBuilder(dataAdapter);
dt = new DataTable();
dataAdapter.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (HanaException ex)
{
MessageBox.Show( "Error "+ ex.Message);
}
//UPDATE-INSERT BUTTON
private void button2_Click(object sender, EventArgs e)
{
string tablename = textBox1.Text;
serverAdresse2 = label1.Text; //= serverAdresse2;
port2 = label2.Text;
database2 = label4.Text;
username2 = label5.Text;
password2 = label3.Text;
try
{
commandBuilder = new HanaCommandBuilder(dataAdapter);
dataAdapter.Update(dt);
// dataGridView1.ReadOnly = true;
MessageBox.Show("Successfully updated/inserted record");
}
catch (HanaException ex)
{
MessageBox.Show("A database connection error has occured: " + ex.Message);
}
catch (Exception ex2)
{