【发布时间】:2017-07-07 14:11:46
【问题描述】:
下面的代码 sn-p 从我的表中拉出一个包装大小列,但我使用的是 getString,但我得到一个错误,然后现在看到是一个问题,因为我拉的列是十进制类型。我将如何转换我的 sn-p 以接受十进制值?
try
{
string connectionString = "Data Source=CMDLAP121\\SQLEXPRESS;Initial Catalog=TESTBAR;Integrated Security=True";
string query = "SELECT * FROM BCODEREF WHERE BAR_CODE = '" + comboBox1.Text + "';";
string mystring = query;
SqlConnection con = new SqlConnection(connectionString);
con.Open();
SqlCommand cmd = new SqlCommand(query, con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string spo = dr.GetString(dr.GetOrdinal("PACKSIZE"));
ponum.Text = spo;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
【问题讨论】:
-
你在做多余的事情。这更容易:十进制packSize = 0; decimal.TryParse(dr["PACKSIZE"].ToString(), out packSize);是的,关于 sql 注入的评论对于交付非常重要
-
@Prdp 好的,注意到了。
-
@artem 指出。将修复以避免 SQL 注入。还有一个问题,我如何将您的解决方案分配给我的文本框,如我原来的帖子所示?
-
ponum.Text = packSize.ToString("0.00"); //指定你需要的格式。详情见这里stackoverflow.com/questions/8125492/…
-
@Artem 我理解你的意思,但就我的数据而言,我如何从我的数据库中的十进制类型的表中实际提取“PACKSIZE”列数据?跨度>
标签: sql sql-server winforms