将数据集传递到数组(VB.Net、ASP.Net、JavaScript)后,从datarow为textbox控件返回多列
我有一种情况,我已经工作了几个小时——我觉得这里有一些非常明显的东西,但我错过了。我从来没有在这样的开发环境中工作过,所以我相信这是其中的一部分。欢迎提供任何帮助/建议将数据集传递到数组(VB.Net、ASP.Net、JavaScript)后,从datarow为textbox控件返回多列,javascript,asp.net,vb.net,sql-server-2008,web-applications,Javascript,Asp.net,Vb.net,Sql Server 2008,Web Applications,我有一种情况,我已经工作了几个小时——我觉得这里有一些非常明显的东西,但我错过了。我从来没有在这样的开发环境中工作过,所以我相信这是其中的一部分。欢迎提供任何帮助/建议 产品:网络应用 环境: ~数据库/后端SQL Server管理工作室,SQL Server 2008 R2 ~接口/前端ASPX页面,SharePoint 2010 ~语言,发展VisualStudio2010、VB.Net、JavaScript、HTML、SQL、Ajax、jQuery ~MiscWeb部件、更新面板等 任务
- 产品:网络应用
- 环境: ~数据库/后端SQL Server管理工作室,SQL Server 2008 R2 ~接口/前端ASPX页面,SharePoint 2010 ~语言,发展VisualStudio2010、VB.Net、JavaScript、HTML、SQL、Ajax、jQuery ~MiscWeb部件、更新面板等
- 任务和问题:
using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Text;
using System.Data.SqlClient;
using System.Collections.Generic;
using IDE_Utility.DBConnection;
namespace ORG40.Layouts.ORG40
{
public partial class OrganizationSearch : LayoutsPageBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GetCompleteList(object sender, EventArgs e)
{
DataSet DS = new DataSet();
SqlParameter sqlParamComp = new SqlParameter();
sqlParamComp.ParameterName = "@oName";
sqlParamComp.DbType = DbType.String;
sqlParamComp.Value = "%" + OrganizationName.Text + "%";
SqlParameter[] sqlParams = new SqlParameter[]{
new SqlParameter("@orgCode", DBNull.Value),
sqlParamComp
};
DS = DBConnection.GetDataSet("getL_Organization", CommandType.StoredProcedure, sqlParams);
GridView1.DataSource = DS;
GridView1.DataBind();
}
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static string[] getNames(string prefixText, int count)
{
DataSet DS = new DataSet();
SqlParameter sqlParamComp = new SqlParameter();
sqlParamComp.ParameterName = "@oName";
sqlParamComp.DbType = DbType.String;
sqlParamComp.Value = "%" + prefixText + "%";
SqlParameter[] sqlParams = new SqlParameter[]{
new SqlParameter("@orgCode", DBNull.Value),
sqlParamComp
};
DS = DBConnection.GetDataSet("getL_Organization", CommandType.StoredProcedure, sqlParams);
DataTable Dt = new DataTable();
Dt = DS.Tables[0].DefaultView.ToTable(true, new string[] {"OrgCode", "Name"});
DataRow[] Dr = new DataRow[Dt.Rows.Count];
Dt.Rows.CopyTo(Dr, 0);
return Array.ConvertAll(Dr, new Converter<DataRow, String>(DataRowToString));
}
public static string DataRowToString(DataRow pDr)
{
return Convert.ToString(pDr["OrgCode" "Name"].ToString());
}
}
}
使用系统;
使用Microsoft.SharePoint;
使用Microsoft.SharePoint.WebControl;
使用系统集合;
使用系统配置;
使用系统数据;
使用System.Web;
使用System.Web.Security;
使用System.Web.UI;
使用System.Web.UI.HTMLControl;
使用System.Web.UI.WebControl;
使用System.Web.UI.WebControl.WebParts;
使用系统文本;
使用System.Data.SqlClient;
使用System.Collections.Generic;
使用IDE_Utility.DBConnection;
名称空间ORG40.Layouts.ORG40
{
公共部分类组织搜索:LayoutsPageBase
{
受保护的无效页面加载(对象发送方、事件参数e)
{
}
受保护的void GetCompleteList(对象发送方,事件参数e)
{
数据集DS=新数据集();
SqlParameter sqlParamComp=新的SqlParameter();
sqlParamComp.ParameterName=“@oName”;
sqlParamComp.DbType=DbType.String;
sqlParamComp.Value=“%”+OrganizationName.Text+“%”;
SqlParameter[]sqlParams=新的SqlParameter[]{
新的SqlParameter(“@orgCode”,DBNull.Value),
sqlParamComp
};
DS=DBConnection.GetDataSet(“getL_组织”,CommandType.StoredProcess,sqlParams);
GridView1.DataSource=DS;
GridView1.DataBind();
}
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
公共静态字符串[]getNames(字符串前缀文本,整数计数)
{
数据集DS=新数据集();
SqlParameter sqlParamComp=新的SqlParameter();
sqlParamComp.ParameterName=“@oName”;
sqlParamComp.DbType=DbType.String;
sqlParamComp.Value=“%”+prefixText+“%”;
SqlParameter[]sqlParams=新的SqlParameter[]{
新的SqlParameter(“@orgCode”,DBNull.Value),
sqlParamComp
};
DS=DBConnection.GetDataSet(“getL_组织”,CommandType.StoredProcess,sqlParams);
DataTable Dt=新的DataTable();
Dt=DS.Tables[0].DefaultView.ToTable(true,新字符串[]{“OrgCode”,“Name”});
DataRow[]Dr=新的DataRow[Dt.Rows.Count];
Dt.Rows.CopyTo(Dr,0);
返回Array.ConvertAll(Dr,新转换器(DataRowToString));
}
公共静态字符串DataRowtString(DataRow pDr)
{
返回Convert.ToString(pDr[“OrgCode”“Name”].ToString());
}
}
}
我觉得答案就在两条线之间:
Dt=DS.Tables[0].DefaultView.ToTable(true,新字符串[]{“OrgCode”,“Name”})代码>
和数组的返回行:
返回Convert.ToString(pDr[“OrgCode”“Name”].ToString())代码>
我认为我的问题在于试图显示最后一行的组织代码。如果我只使用“Name”,它可以工作,但是每次我修改它时,文本框都不会显示任何内容,或者代码出错
我最近的想法是关于最后一行代码-我意识到返回Convert.ToString(pDr[“OrgCode”“Name”]
是不正确的语法-我一直在尝试确定如何正确解释[“OrgCode”“Name”]
中的多个列
如果有任何想法或想法,我将不胜感激
谢谢!我也在ASP.NET论坛上问了这个问题,并在那里得到了答案。我苦苦挣扎的最后一句话是:
return Convert.ToString(pDr["OrgCode" "Name"].ToString());
设置为:
return (Convert.ToString(pDr["OrgCode"]) + " " + Convert.ToString(pDr["Name"]));
像冠军一样工作!感谢所有回顾这个问题的人