在Grid-View中使用Select语句时,在输出中获得空结果

时间:2017-07-04 06:08:56

标签: c# sql-server ado.net

这就是我所做的 我创建了一个GridView并选择了数据密钥名称为id,并在ID的基础上显示DetailsView。这里是CS代码

using (SqlConnection con1 = new SqlConnection("Data Source= IA; initial catalog =aip; integrated Security=true;"))
{
    con1.Open();
    SqlCommand cmd = new SqlCommand("select * from Pm where user_id='" +(String)Session["uid"]+ "'", con1);
    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(ds);
    GridView1.DataSource = ds;
    GridView1.DataBind();
    con1.Close();
}

然后我在DetailsView上制作SelectedIndexChanged方法: 但是在选择'选择'时,它会在输出中显示空DetailsView。选项 这是代码图片 enter image description here

3 个答案:

答案 0 :(得分:1)

您使用的是id_product而不是DataTable。所以你可以这样做:

<application
    android:name="AppController"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

或者改为使用 <RelativeLayout android:id="@+id/layout_container" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- Camera Preview --> <FrameLayout android:id="@+id/camera_preview" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>

DataSet

此外,您应始终使用parameterized queries来避免SQL Injection。像这样:

da.Fill(ds,"tbl");
GridView1.DataSource = ds.Tables[0];

另请看一下:Can we stop using AddWithValue() already?

答案 1 :(得分:0)

您需要设置DataTable而不是DataSet

GridView1.DataSource = ds.Tables["Pm"]; 

答案 2 :(得分:0)

@PIYUSH Itspk请检查查询并替换

 SqlCommand cmd = new SqlCommand("select * from Pm where user_id=" +Session["uid"].tostring()+ ", con1);

我认为如果有任何其他疑问,请帮助您通知我