2013-12-02 4 views
-1

Я новичок в C# и пытаюсь выяснить часть удаления и обновления моей таблицы. Я получаю часть вставки, потому что я не пытаюсь выбрать что-либо в своей таблице до нажатия кнопки. Однако с удалением и обновлением я смущен тем, как запрос соединяется с выбранной строкой в ​​моей таблице. Если бы кто-нибудь мог указать мне в правильном направлении, это было бы здорово. Я использую набор данных и GridControl в devexpress. Я также должен использовать кнопки для выполнения событий и не буду использовать поля команд в сетке. И я работаю над созданием вставки с параметрами.Удаление строки из таблицы C#

Мой список:

public partial class PatientList : XtraForm 
{ 
    public PatientList() 
    { 
     InitializeComponent(); 
    } 

    private void PatientList_Load(object sender, EventArgs e) 
    { 
     SAConnection conn = new SAConnection("dsn={SQL Anywhere 10};uid=dba;pwd=sql;databasefile=C:\\Users\\Kbaker1\\Desktop\\Training1.db;"); 
     SADataReader rdr = null; 
     string Query = "SELECT * FROM patient"; 
     SADataAdapter da = new SADataAdapter(Query, conn); 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 
     grdList.DataSource = ds.Tables[0]; 

     try 
     { 
      conn.Open(); 
      SACommand cmd = new SACommand(Query, conn); 
      rdr = cmd.ExecuteReader(); 
     } 
     finally 
     { 
      if (rdr != null) 
      { 
       rdr.Close(); 
      } 

      if (conn != null) 
      { 
       conn.Close(); 
      } 
     } 
    } 

    private void btnNewPatient_Click(object sender, EventArgs e) 
    { 
     Edit editPat = new Edit(); 
     editPat.Show(); 
    } 

    private void btnEditPatient_Click(object sender, EventArgs e) 
    { 
     Edit editPat = new Edit(); 
     editPat.Show();   
    } 

    private void btnDeletePatient_Click(object sender, EventArgs e) 
    { 
     PatientService ps = new PatientService(); 
     ps.DeletePatient(); 
    } 

    private void btnClose_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
    } 
} 

класса обслуживания, выполняющих операции:

public class PatientService 
{ 
    public void DataAccess() 
    { 

    } 

    public void CreatePatient(Patient patient) 
    { 
     SAConnection conn = new SAConnection(); 
     SACommand cmd = new SACommand(); 
     conn.ConnectionString = ("dsn={SQL Anywhere 10};uid=dba;pwd=sql;DBF=C:\\Users\\Kbaker1\\Desktop\\Training1.db;"); 
     conn.Open(); 
     cmd.Connection = conn; 
     cmd.CommandText = (@"INSERT INTO patient (patient_id, first_name, last_name, address, city, state, zipcode, phone, classification_id) 
     VALUES ('" 
     + patient.PatientID + "','" 
     + patient.FirstName + "','" 
     + patient.LastName + "','" 
     + patient.Address + "','" 
     + patient.City + "','" 
     + patient.State + "','" 
     + patient.ZipCode + "','" 
     + patient.Phone + "','" 
     + patient.ClassificationID + "'); "); 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
    } 

    public void UpdatePatient() 
    { 

    } 

    public void DeletePatient() 
    { 
     SAConnection conn = new SAConnection(); 
     conn.ConnectionString = ("dsn={SQL Anywhere 10};uid=dba;pwd=sql;DBF=C:\\Users\\Kbaker1\\Desktop\\Training1.db;"); 
     conn.Open(); 
     SACommand cmd = new SACommand("DELETE FROM patient WHERE patient_id = @patient_id"); 
     cmd.Connection = conn; 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
    } 
} 
+0

Просто предложение: посмотрите на Entity Framework, который заменяет все громоздкие инструкции T-SQL и дает вам объекты (DbContext), которые вы подключаете к своей базе данных. Затем манипуляции обычно составляют 2-3 строки кода. Я сказал, вы получаете IntelliSense? –

+0

DataAdapter имеет метод Update, который может передавать каждое изменение, сделанное в сетке, в базовую базу данных. Проверьте документы SADataAdapter – Steve

+0

Благодаря обоим! – user3034095

ответ

0

Просто замените заявление INSERT SQL с UPDATE

UPDATE table_name 
SET column1=value1,column2=value2,... 
WHERE some_column=some_value; 

Удалить:

DELETE FROM table_name 
WHERE some_column=some_value; 
+0

Спасибо! Как насчет удаления? – user3034095

+1

'DELETE FROM tableName WHERE something = somethingElse'. У вас есть ссылка на SQL, с которой вы можете рисовать? –

+0

Robert, Есть ли вопрос DELETE, который у меня уже есть? Благодарю. – user3034095

Смежные вопросы