Как назначить значение Textbox для Oracle SQL Query C # - PullRequest
0 голосов
/ 05 мая 2019

Назначение введенного значения texbox для запроса Sql | C # | Oracle

Как назначить значение Textbox для моего SQL-запроса C #

C# Application UI]([UI

На изображении выше я набрал Tablename = PERSONDETAILS, это введенное значение в textBox1.Text должно быть передано в мой SQL-запрос в качестве параметра. Так что жесткое кодирование имени таблицы в запросе SQl будет уменьшено

Actualкод, куда я хочу, чтобы он был включен

select dbms_metadata.get_ddl('TABLE',table_name,user) AS my_ddl from all_tables where owner ='HR' AND table_name ='PERSONDETAILS'"

код:

OracleConnection con = new OracleConnection();
con.ConnectionString = conString;
con.Open();

OracleCommand cmd = con.CreateCommand();
cmd.Parameters.Add("userid", OracleDbType.Varchar2, 20).Value = textBox1.Text.ToString();
cmd.Parameters.Add("tableName", OracleDbType.Varchar2, 20).Value = texttablename.Text.ToString();
//cmd.CommandText = "select * from all_all_tables WHERE table_name=:tableName";
cmd.CommandText ="select dbms_metadata.get_ddl('TABLE',table_name,user) AS my_ddl from all_tables where owner = :userid AND table_name = :tableName";
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
    textBox6.Text = reader.GetString(0);
}
con.Close();

1 Ответ

0 голосов
/ 05 мая 2019

Вам необходимо передать значение текстового поля в качестве параметра вашей команде через Parameters свойство OracleCommand.

Так что все, что вам нужно включить в ваш код:

cmd.CommandText = "select * from all_all_tables WHERE table_name=:tableName";
cmd.Parameters.Add("tableName", OracleType.VarChar, 20).Value =  textBox1.Text;

Обновление относительно комментариев:

cmd.CommandText ="select dbms_metadata.get_ddl('TABLE',table_name,user) AS my_ddl from all_tables where owner = :userid AND table_name = :tableName";
// here you might want to use appropiate datatype
cmd.Parameters.Add("userid", OracleDbType.Varchar2, 20).Value = textBox1.Text;
cmd.Parameters.Add("tableName", OracleDbType.Varchar2, 20).Value = texttablename.Text;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...