سلام دوستان
من در وب سرويس متدي نوشتم كه نتيجه به صورت چند ركورد هست و به همين خاطر اون رو در datatable قرار دادم.
در قسمت كلاينت كه اين متد رو فراخواني ميكنم ، براي قرار دادن در gridview با خطا روبرو ميشم.
متد وب سرويس اين هست:
و در سمت كلاينت هم با زدن دكمه متد وب سرويس فراخواني ميشود:
اما در خط مشخص شده با رنگ قرمز با چنين خطايي مواجه ميشم:
مشكل از كجاست؟ بايد در سمت كلاينت نوع مقدار بازگشتي را تغيير دهم؟
من در وب سرويس متدي نوشتم كه نتيجه به صورت چند ركورد هست و به همين خاطر اون رو در datatable قرار دادم.
در قسمت كلاينت كه اين متد رو فراخواني ميكنم ، براي قرار دادن در gridview با خطا روبرو ميشم.
متد وب سرويس اين هست:
کد:
[WebMethod]
public DataTable GetTest(string Syml, DateTime DTE1, DateTime DTE2)
{
string sql = " select Symbol,DateTime,H5 from FX_Forecast where Symbol='" + Syml + "' and DateTime BETWEEN '" + DTE1 + "'AND'" + DTE2 + "'";
OpenDb();
cmd = new SqlCommand(sql, con);
dr = cmd.ExecuteReader();
DataTable dt = new DataTable("DTB");
dt.Columns.Add("Symbl", typeof(string));
dt.Columns.Add("DT", typeof(DateTime));
dt.Columns.Add("H5", typeof(string));
while (dr.Read())
{
DataRow row = dt.NewRow();
row["Symbl"] = dr["Symbol"];
row["DT"] = dr["DateTime"];
row["H5"] = dr["H5"];
dt.Rows.Add(row);
}
return dt;
con.Close();
}
و در سمت كلاينت هم با زدن دكمه متد وب سرويس فراخواني ميشود:
کد:
protected void Button1_Click(object sender, EventArgs e)
{
localhost.Service datatb = new localhost.Service();
[COLOR=red]GridView1.DataSource = datatb.GetTest();[/COLOR]
GridView1.DataBind();
}
اما در خط مشخص شده با رنگ قرمز با چنين خطايي مواجه ميشم:
کد:
Data source is an invalid type. It must be either an IListSource, IEnumerable, or IDataSource.
مشكل از كجاست؟ بايد در سمت كلاينت نوع مقدار بازگشتي را تغيير دهم؟