我想在数据表中搜索一些输入,如果找到了确切的数据,那么我想将这些数据放入另一个表中。如果没有,我将简单地清除相应的TextBox。到目前为止,我已经完成了这些论文。
private void btn_InputConfirm_Click(object sender, EventArgs e) {
string strConnection = @"Data Source=F_NOOB-PC\;Initial Catalog=ComShopDB;Integrated Security=True";
SqlConnection objcon = new SqlConnection(strConnection);
try {
string strcmd1 = "SELECT partID,partAvailable FROM Parts WHERE partID LIKE '" + txtbox_ProductSerial.Text + "'AND partAvailable ='yes'";
SqlCommand objcmd1 = new SqlCommand(strcmd1, objcon);
objcon.Open();
objcmd1.ExecuteNonQuery();
objcon.Close();
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
非常感谢一些帮助。提前谢谢。
答案 0 :(得分:3)
您可以使用DataTable
,使用ExecuteReader
方法并将所有记录加载到DataTable
,然后使用AsEnumerable
和一些LINQ
您可以获得结果作为List
。
DataTable dt = new DataTable();
var reader = objcmd1.ExecuteReader();
if(reader.HasRows)
{
dt.Load(reader);
var myValues = dt.AsEnumerable()
.Select(d => new {
Id = d["partID"],
Available = d["partAvailable"]
}).ToList();
}
另外,您应该考虑使用parameterized queries
来阻止SQL Injection
次攻击。
答案 1 :(得分:0)
最简单的方法是使用DataAdapter
,然后在Fill()
或DataTable
上使用其DataSet
功能。您无需打开和关闭连接,因为Fill()
函数会为您执行此操作:
private void btn_InputConfirm_Click(object sender, EventArgs e)
{
string strConnection = @"Data Source=F_NOOB-PC\;Initial Catalog=ComShopDB;Integrated Security=True";
SqlConnection objcon = new SqlConnection (strConnection);
try
{
//Writing command//
string strcmd1 = "SELECT partID,partAvailable FROM Parts WHERE partID LIKE '" + txtbox_ProductSerial.Text + "'AND partAvailable ='yes'";
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(strcmd1, objcon);
System.Data.DataSet ds = new System.Data.DataSet();
aa.Fill(ds);
}
catch ( Exception ex )
{
MessageBox.Show (ex.Message);
}