【发布时间】:2014-10-16 08:22:25
【问题描述】:
我在调用存储过程过滤客户数据时遇到问题。 表:
ID : CS-001, CS-002, CS-003
Nama : xxxxxx, xxxxxx, xxxxxx
C# 中的函数
public DataTable pilihCustomer(string id)
{
classKoneksi = new koneksi();
sql = "call PilihCustomer(" + id + ")";
tabel = new DataTable();
try
{
classKoneksi.koneksiBuka();
komand = new MySqlCommand(sql, classKoneksi.konek);
adapter = new MySqlDataAdapter(komand);
adapter.Fill(tabel);
}
catch (Exception) {}
classKoneksi.koneksiTutup();
return tabel;
}
我称之为
private void editToolStripMenuItem_Click(object sender, EventArgs e)
{
if (LvCustomer.SelectedItems.Count > 0)
{
string id = LvCustomer.SelectedItems[0].Text;
FCustomer f2 = new FCustomer();
DATA_ACCES.Acces_Customer baca = new DATA_ACCES.Acces_Customer();
tabel = baca.pilihCustomer(id);
string nama = "", npwp = "", tlp = "", fax = "", email="", kontak="";
foreach (DataRow kolom in tabel.Rows)
{
nama = kolom["nama perusahaan"].ToString();
npwp = kolom["npwp"].ToString();
tlp = kolom["telepon"].ToString();
fax = kolom["faxmile"].ToString();
email = kolom["email"].ToString();
kontak = kolom["kontak"].ToString();
}
}
else
{
MessageBox.Show("Please select an item before assigning a value.");
}
}
如果表格为
,则可以运行上述函数ID : 101, 102, 103
Nama : xxxxxx, xxxxxx, xxxxxx
【问题讨论】:
-
您是否在任何地方定义了 kommand 是存储过程?例如 komand.CommandType = CommandType.StoredProcedure;
-
你有什么问题?错误信息?没有数据?还有什么?
-
@apomene 好吧,sql 是
"call PilihCustomer(" + id + ")";- 它有一系列其他问题,但至少间接调用了 proc -
@Deri:警告 - 请注意您的代码容易受到 SQL 注入的影响,这是一种严重且容易被利用的风险,通过正确的参数化可以轻松避免;您应该不将输入值连接到 SQL....永远
-
catch (Exception) { }让我怀疑它已经在尝试非常非常努力告诉你出了什么问题,但你只是忽略它并继续...... .
标签: c# mysql stored-procedures