2

ListViewSQL データベースのデータを含む があります。項目のタグ値を使用して、ListViewデータベースの をuniqueid格納しました (そのため、格納するために に余分な非表示の列を作成する必要はありませんListView)。

次のエラーが表示されます。

System.InvalidCastException が発生しました

これは私のコードです:

using (SqlCommand sqlCommand = new SqlCommand("SELECT * FROM Employees WHERE ID = @ID",     DBFactory.GetSqlConnection()))
{
    sqlCommand.Parameters.Add("@ID", SqlDbType.UniqueIdentifier).Value = ((Guid)listView1.SelectedItems[0].Tag);

    using (SqlDataAdapter sda = new SqlDataAdapter(sqlCommand))
    {
        sda.Fill(table);
    }
}

アイデア/提案はありますか?

編集: listView1.SelectedItems.SelectedItemArray[0].Tag オブジェクト {string} のタイプが見つかりました。列「ID」の DataType = UniqueIndentifier であるため、非常に奇妙です。

4

2 に答える 2

2

おそらく、キャストするのではなく、GUID として解析する必要があります。

sqlCommand.Parameters.Add("@ID", SqlDbType.UniqueIdentifier).Value =
    (new Guid(listView1.SelectedItems[0].Tag));
于 2012-12-21T20:49:24.240 に答える