当我尝试从数据库中填充 DropDownList 时出现 DataRowView 问题

DataRowView issue when I try to Fill DropDownList from Database

Baglanti.FnkBaglan();
SqlCommand DropDown = new SqlCommand("SELECT * FROM [Yazar]", Baglanti.baglan);
SqlDataAdapter Adp = new SqlDataAdapter(DropDown);
DataSet ds = new DataSet();
Adp.Fill(ds);
DrpYazarSec.DataTextField = ds.Tables[0].Columns["Yazar_isim"].ToString() + " " + ds.Tables[0].Columns["Yazar_soyisim"].ToString();
DrpYazarSec.DataValueField = ds.Tables[0].Columns["YazarID"].ToString();
DrpYazarSec.DataSource = ds.Tables[0];
DrpYazarSec.DataBind();

我使用了这个代码但是出现了这个错误;附加信息:DataBinding:'System.Data.DataRowView' 不包含名为 Yazar_isim Yazar_soyisim 的属性。 ( 没有 Yazar_isim Yazar_soyisim )

问题是由这段代码引起的:

DrpYazarSec.DataTextField = ds.Tables[0].Columns["Yazar_isim"].ToString() + " " + 
                            ds.Tables[0].Columns["Yazar_soyisim"].ToString();

您不能将文本绑定到多列,这是不可能的。

但是,您可以在查询中连接两列,例如:

SqlCommand DropDown = new SqlCommand("SELECT *, 
    [Yazar_isim] + ' ' + [Yazar_soyisim] AS [FullName]
    FROM [Yazar]", Baglanti.baglan);

...

DrpYazarSec.DataTextField = "FullName";
DrpYazarSec.DataValueField = "YazarID";

...