簡體   English   中英

MS Access到SQL Server搜索

[英]MS Access to sql server searching

如果要使用sql server數據庫,則如何使用此代碼,因為在此代碼中,我們將MS Access用作數據庫

private void btnSearch_Click(object sender, System.EventArgs e) {
  String pcode = txtPcode.Text;
  int ctr = productsDS1.Tables[0].Rows.Count;
  int x;
  bool found = false;

  for (x = 0; x<ctr; x++) {
    if (productsDS1.Tables[0].Rows[x][0].ToString() == pcode) {
      found = true;
      break;
    }
  }

  if (found == true) {
    txtPcode.Text = productsDS1.Tables[0].Rows[x][0].ToString();
    txtDesc.Text = productsDS1.Tables[0].Rows[x][1].ToString();
    txtPrice.Text = productsDS1.Tables[0].Rows[x][2].ToString();
  } else {
    MessageBox.Show("Record Not Found");
  }

  private void btnNew_Click(object sender, System.EventArgs e) {
    int cnt = productsDS1.Tables[0].Rows.Count;
    string lastrec = productsDS1.Tables[0].Rows[cnt][0].ToString();
    int newpcode = int.Parse(lastrec) + 1;

    txtPcode.Text = newpcode.ToString();
    txtDesc.Clear();
    txtPrice.Clear();
    txtDesc.Focus();

這是連接字符串

Jet OLEDB:全局部分批量操作= 2; Jet OLEDB:注冊表路徑=; Jet OLEDB:數據庫鎖定模式= 0;數據源=“ J:\\ 2009-2010 \\ 1st sem \\ VC#\\ Sample \\ WindowsApplication_Products \\ PointOfSales.mdb ”

對服務器實施這種代碼將完全濫用SQL Server。 我的C#是有點生疏,但它看起來像這樣的代碼走過的每一行productsDS1 ,對照“P代碼”,“說明”和“價格”這些輸入到文本框。

實現此目的的正確方法是通過SQL Server上的存儲過程,該存儲過程將傳遞這三個值並返回匹配記錄的記錄集(或可能在單獨的恢復過程中使用的RecordID),或者至少返回形成一個SQL語句以檢索數據(即"SELECT * FROM productsDS1 where Pcode = '" & txtPcode.Text & "' AND Desc = '" & txtDesc.Text & "' AND Price = " & txtPrice.Text )。 我建議使用第一種方法,因為第二種方法容易受到SQL注入的影響。

(對於Access數據庫,這種方法也更合適。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM