这是我第一次尝试使用Postgres进行c#练习的SEARCH函数。
我尝试使用下拉列表选择学生记录并以表格形式显示。但是它不能正确地从下拉列表中获取ID以检索正确的数据并以表格形式显示。语法中是否存在逻辑安排错误的安排?
connection.ConnectionString =
ConfigurationManager.ConnectionStrings["constr"].ToString();
connection.Open();
NpgsqlCommand cmd = new NpgsqlCommand();
cmd.Connection = connection;
cmd.CommandText = "SELECT * FROM t_student";
cmd.Parameters.AddWithValue("@ID", DropDownList2.SelectedItem.Value);
cmd.CommandType = CommandType.Text;
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (System.Data.DataRow row in dt.Rows)
{
txtFname.Text = row["f_name"].ToString();
txtLname.Text = row["l_name"].ToString();
txtIC.Text = row["ic"].ToString();
}
connection.Close();
答案 0 :(得分:1)
似乎您在选择命令中忘记了WHERE
条件。
应该是这样的
cmd.CommandText = "SELECT * FROM t_student WHERE ID = @ID";
我以前从未使用过Postgres,但是异常很可能暗示Postgres没有隐式转换机制。因此,我想您需要自己转换类型。
修改
cmd.Parameters.AddWithValue("@ID", DropDownList2.SelectedItem.Value);
收件人
cmd.Parameters.Add(new SqlParameter() { SqlDbType = SqlDbType.BigInt, ParameterName = "@ID", Value = Int64.Parse(DropDownList2.SelectedItem.Value) });