MS访问SQL Server搜索
如何,如果我们要使用SQL Server数据库使用此代码,因为在此代码,我们使用的MS Access作为数据库MS访问SQL Server搜索
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();
这里的的ConnectionString
喷气OLEDB:全局部分批量Ø ps = 2; Jet OLEDB:Registry Path =; Jet OLEDB:Database Locking Mode = 0; Data Source =“J:\ 2009-2010 \ 1st sem \ VC#\ Sample \ WindowsApplication_Products \ PointOfSales.mdb”
It将完全滥用SQL Server来针对服务器实现这样的代码。我的C#有点生疏,但它看起来像代码遍历productsDS1
的每一行,比较“Pcode”,“Desc”和“Price”与输入到文本框中的代码。
实现此目的的正确方法是通过SQL Server上的存储过程传递这三个值并返回匹配记录的记录集(或可能在单独的复制过程中使用的RecordID) )或至少形成一个SQL语句来检索数据(即"SELECT * FROM productsDS1 where Pcode = '" & txtPcode.Text & "' AND Desc = '" & txtDesc.Text & "' AND Price = " & txtPrice.Text
)。我会推荐第一种方法,因为第二种方法容易受到SQL注入的影响。
(这种方法也将是对Access数据库比较合适。)
@data jockey:我已经格式化了你的答案,使它更具可读性 - 希望你不要介意:) – 2010-03-22 08:38:01
+1但是,您不需要使用存储过程来防止SQL注入。参数化查询/准备语句应该很好地解决问题。 – 2010-03-22 08:39:34
建议:添加代码是缺少零件和格式化。显示您当前如何连接到Access。告诉我们你的尝试。 – 2010-02-11 04:52:26
我没有看到你在这个代码中使用Access。 – 2010-02-11 04:54:12
Jet OLEDB:Global Partial Bulk Ops = 2; Jet OLEDB:Registry Path =; Jet OLEDB:Database Locking Mode = 0; Data Source =“J:\ 2009-2010 \ 1st sem \ VC#\ Sample \ WindowsApplication_Products \ PointOfSales。 mdb“ – 2010-02-11 05:01:07