C# 将列表添加到新阵列时出错
我希望在GridView中绑定SQL数据库表。在这里,我使用Ajax通过“url”调用名为“GetProducts”的Web方法,使用HTTP POST谓词。它执行select查询并返回数据。这是代码,但“p.ToArray()”中显示了错误。它表示无法隐式转换。请帮助我使此代码能够运行。如果代码的其他部分有任何错误,请建议我: 这是.aspx.cs页面中的代码:C# 将列表添加到新阵列时出错,c#,jquery,asp.net,ajax,webforms,C#,Jquery,Asp.net,Ajax,Webforms,我希望在GridView中绑定SQL数据库表。在这里,我使用Ajax通过“url”调用名为“GetProducts”的Web方法,使用HTTP POST谓词。它执行select查询并返回数据。这是代码,但“p.ToArray()”中显示了错误。它表示无法隐式转换。请帮助我使此代码能够运行。如果代码的其他部分有任何错误,请建议我: 这是.aspx.cs页面中的代码: namespace AvailableProductsWithAjax { public partial class Ava
namespace AvailableProductsWithAjax
{
public partial class AvailableProductsWebForm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.BindDummyRow();
}
// GridView1.Columns[0].Visible = false;
}
private void BindDummyRow()
{
DataTable dummy = new DataTable();
//dummy.Columns.Add("Product_Id");
dummy.Columns.Add("Product_Name");
dummy.Columns.Add("Product_Description");
dummy.Columns.Add("Product_Category");
dummy.Columns.Add("Product_Price");
dummy.Columns.Add("Product_Quantity");
dummy.Rows.Add();
GridView1.DataSource = dummy;
GridView1.DataBind();
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
[WebMethod]
public static Products GetProducts()
{
List<Products> p = new List<Products>();
string query = "Select Product_Name, Product_Description, Product_Category, Product_Price, Product_Quantity from Items";
String cs = ConfigurationManager.ConnectionStrings["WebShopDB"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
SqlCommand cmd = new SqlCommand();
sda.SelectCommand = cmd;
cmd.Connection = con;
cmd.CommandText = query;
DataTable dt = new DataTable();
sda.Fill(dt);
foreach (DataRow dtRow in dt.Rows)
{
Products ps = new Products();
ps.Products_Name = dtRow["Product_Name"].ToString();
ps.Products_Category = dtRow["Product_Category"].ToString();
ps.Products_Description = dtRow["Product_Description"].ToString();
ps.Products_Price = dtRow["Product_Price"].ToString();
ps.Products_Quantity = dtRow["Product_Quantity"].ToString();
}
}
}
return p.ToArray();
// Here is the error, cannot be converted implicitly
}
public class Products
public int Products_Id { get; set; }
public string Products_Name { get; set; }
public string Products_Description { get; set; }
public string Products_Category { get; set; }
public string Products_Price { get; set; }
public string Products_Quantity { get; set; }
}
}
}
请帮助我运行此代码。您的返回类型是
产品
,但您正在尝试返回列表
将方法签名更改为
public static List<Products> GetProducts()
您应该在
Products[]
中返回它,而不是Products
所以你的代码应该是
[WebMethod]
public static Products[] GetProducts()
{
List<Products> p = new List<Products>();
string query = "Select Product_Name, Product_Description, Product_Category, Product_Price, Product_Quantity from Items";
[WebMethod]
公共静态产品[]GetProducts()
{
列表p=新列表();
string query=“从物料中选择产品名称、产品描述、产品类别、产品价格、产品数量”;
如果需要更多帮助,请告诉我
public static List<Products> GetProducts()
p.Add(ps);
[WebMethod]
public static Products[] GetProducts()
{
List<Products> p = new List<Products>();
string query = "Select Product_Name, Product_Description, Product_Category, Product_Price, Product_Quantity from Items";