C# 从表c中删除行

C# 从表c中删除行,c#,sqlanywhere,C#,Sqlanywhere,我是c语言的新手,正在尝试找出表中的删除和更新部分。我得到插入部分是因为在单击按钮之前,我没有尝试选择表中的任何内容。然而,对于delete和update,我对查询如何与表中的选定行配对感到困惑。如果有人能给我指出正确的方向那就太好了。我正在devexpress中使用数据集和GridControl。我还必须使用按钮来执行事件,并且不会使用网格中的命令字段。我正在用参数进行插入 我的名单: public partial class PatientList : XtraForm { publ

我是c语言的新手,正在尝试找出表中的删除和更新部分。我得到插入部分是因为在单击按钮之前,我没有尝试选择表中的任何内容。然而,对于delete和update,我对查询如何与表中的选定行配对感到困惑。如果有人能给我指出正确的方向那就太好了。我正在devexpress中使用数据集和GridControl。我还必须使用按钮来执行事件,并且不会使用网格中的命令字段。我正在用参数进行插入

我的名单:

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();
    }
}
只需将INSERT sql语句替换为UPDATE即可

删除:

DELETE FROM table_name
WHERE some_column=some_value;

谢谢删除呢?从tableName中删除,其中something=somethingElse。你有SQL引用吗?Robert,我的删除查询已经正确了吗?谢谢,我觉得不错。您如何填充@patient\u id?我希望DeletePatient函数中有一个参数,或者某个局部成员变量。参数@patient_id在哪里定义?只有一个建议:查看实体框架,它取代了所有繁琐的T-SQL语句,并为您提供连接到数据库的对象DbContext。然后,操作通常是2-3行代码。我是说,你得到了IntelliSense吗?DataAdapter有一个名为Update的方法,可以将网格上的每一个更改都传输到底层数据库。检查SADataAdapter的文档
DELETE FROM table_name
WHERE some_column=some_value;