Как создать класс метода для oracleconnection в C#, чтобы его можно было повторно использовать для следующей выборки базы данных
Привет, я довольно новый новичок в программировании на c#, и мне нужно обратиться за помощью, так как сейчас я размыт в c#... Поэтому меня попросили создать метод для базы данных OracleConnection в приведенном ниже коде, чтобы его можно было использовать повторно, не набирая его еще раз. Настоящим я прилагаю свой код. Спасибо за помощь.
using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Oracle.DataAccess; using Oracle.DataAccess.Client; //ODP.NET ORacle managed provider namespace WindowsFormsApp7 { public partial class MyApp : Form { public MyApp() { InitializeComponent(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void Form1_Load(object sender, EventArgs e) { string OracleServer = "Data Source=mydb;" + "User Id=Config;Password=config123;"; // your username and password database server OracleConnection conn = new OracleConnection(OracleServer); conn.Open(); string orcl = @"Select * FROM mydatabase"; OracleCommand cmd = new OracleCommand(orcl); cmd.Connection = conn; OracleDataAdapter da = new OracleDataAdapter(); DataTable dt = new DataTable(); da.SelectCommand = cmd; da.Fill(dt); listBoxdB.DataSource = dt; listBoxdB.ValueMember = "Database_id"; listBoxdB.DisplayMember = "Location"; this.dataGridView1.DataSource = dt; this.dataGridView1.Refresh(); conn.Close(); conn.Dispose(); } private void listBoxdB_SelectedIndexChanged(object sender, EventArgs e) { string strDbID = Convert.ToString(listBoxdB.SelectedValue); string strDbLocation = Convert.ToString(listBoxdB.GetItemText(listBoxdB.SelectedItem)); string strSql = @"select Name, id from my_source where id not in (select id from new_database where database_id = " + strDbID + ")"; string OracleServer = "Data Source=mydb;" + "User Id=config;Password=config123;"; OracleConnection conn = new OracleConnection(OracleServer); conn.Open(); OracleCommand cmd = new OracleCommand(strSql); cmd.Connection = conn; OracleDataAdapter da = new OracleDataAdapter(); DataTable dt = new DataTable(); da.SelectCommand = cmd; try { da.Fill(dt); this.listBoxApp.DataSource = dt; this.listBoxApp.ValueMember = "Application_id"; this.listBoxApp.DisplayMember = "Application_Name"; } catch { } } private void listBoxApp_SelectedIndexChanged(object sender, EventArgs e) { } } }
Что я уже пробовал:
Я пытался создать класс, но c# не похож на другие программы, которые я изучал раньше, такие как c и c++...
OriginalGriff
А что вы пробовали?
Где ты застрял?
Какая помощь вам нужна?
Покажите нам класс, который вы написали до сих пор, и объясните, в чем проблема с ним.
Мы не имеем ни малейшего представления о том, как должен выглядеть ваш класс, что он должен делать или что он должен выставлять.
Если у вас есть опыт работы в C++ с классами, то часть проектирования должна быть такой же: решить, что должен делать класс, а также какие свойства и методы он предоставляет. C# в этом плане тот же - просто механика реализации немного другая.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.
Richard Deeming
string strSql = @"select Name, id from my_source where id not in (select id from new_database where database_id = " + strDbID + ")";
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]