解决方案 »
- 找不到文件或程序集“System.Data.SqlServerCe,Version=3.0.3600.0,Culture=neutral,PublicKeyTo
- 菜鸟....救命。防注入。Global.asax
- 本地网站调试没问题 上传就出现乱码 求解?
- 【随便说,一句话也行,但不切主题不给分】只弟们,要开始学asp.net ajax和silverlight了,问一下,这两东西要解决的核心问题就是用户体验吗?因为应用本身用asp.net就足够了不是吗。
- GridView中怎么让某一列的数据超链接
- 我想实现这个功能,谁有什么好办法?
- asp.net System.Threading.Timer 如何更新UI
- 去面试该准备些什么?
- 请教一个使用Treeview控件遇到的“重复定义”问题
- 类似购物车的功能!
- 求大神帮我写一个JQuery ajax传json值给asp.net并返回的列子。
- ConnectionString 属性尚未初始化。
我当初的想法和你差不多,C#里面取到此商品的CombinationDetail值,然后根据“,”拆分,再循环带入SQL里面查出值,就是一直没写出来
比如说?获取所有被关联的记录ID
select left(CombinationDetail,len(CombinationDetail)-1) as CombinationDetail
From
(Select (select cast(CombinationDetail as nvarchar),',' from T_ERP_Item Where isnull(CombinationDetail,'')<>'' FOR XML PATH('') ) as CombinationDetail) tb然后获取id 不在CombinationDetail里面的记录缺点,如果数据大多,导致长符串超过SQL所限制的长度,CombinationDetail将被截断
比如说?获取所有被关联的记录ID
select left(CombinationDetail,len(CombinationDetail)-1) as CombinationDetail
From
(Select (select cast(CombinationDetail as nvarchar),',' from T_ERP_Item Where isnull(CombinationDetail,'')<>'' FOR XML PATH('') ) as CombinationDetail) tb然后获取id 不在CombinationDetail里面的记录缺点,如果数据大多,导致长符串超过SQL所限制的长度,CombinationDetail将被截断首先,谢谢哥们你的建议,我也详细测试研究了一下,可能是我表述的不是很清楚,上面的数据只是我测试的数据,我的意思是:只把CombinationDetail里面的所有数据拆分开,再取出各个ID相对应的数据就行了
{
DataRowView row = e.Row.DataItem as DataRowView;
row["CombinationDetail"] //这里获取记录对应的数据
}
这种方法我也试过,还是实现不了,CombinationDetail里面是nvarchar类型存储的值,ID是int类型,现在用ID in CombinationDetail 就会报错,数据转换的方式我都尝试过了,还是谢了
CombinationDetail里面每个ID值分隔开只是完成了第二步,还需要把这些ID全部带到查询语句中,查出这些ID所对应的相关信息
兄弟,GridView嵌套方法我已经实现了,并且CombinationDetail里面每个ID值分隔开也只是完成了第二步,还需要把这些ID全部带到查询语句中,查出这些ID所对应的相关信息,代码如下,求教: //此句属GridView嵌套方法,无需理会
ASPxGridView dd=(ASPxGridView )sender ;
string SkuId = dd.GetMasterRowFieldValues("Id").ToString(); //查询此商品ID对应的CombinationDetail信息
DataSet ComInfoDt = BusinessProtect.BaseInfo.ItemNew.SkuComInfoExecuteDataSet(SkuId);
//得出 ComSkuId = 6678;6685;
string ComSkuId = ComInfoDt.Tables[0].Rows[0]["CombinationDetail"].ToString();
//利用";"分割字符
string[] str = Common.strProcess.strCommaIntercept(ComSkuId);
string ComID=""; //获取分割出来的值,利用 foreach循环带入绑定值
foreach (string c in str)
{
ComID = c.ToString();
dd.DataSource = BusinessProtect.BaseInfo.ItemNew.SkuComInfoExecuteDataSet(ComID);
}
//这里是个关键,每个值都能带进去,但是绑定到下个值时,上条数据就被替代了,我想全部显示
这种方法我也试过,还是实现不了,CombinationDetail里面是nvarchar类型存储的值,ID是int类型,现在用ID in CombinationDetail 就会报错,数据转换的方式我都尝试过了,还是谢了
分表试试,单商品为一个表,组合商品引用单商品表
2.每for一次就 list.add()一次添加到list集合中,然后gridview就可以绑定了。当然可以针对list来排序会进行其他操作。
代码贴上来,大家共同学习,有好的建议欢迎提出!
CREATE PROCEDURE [dbo].[Proc_SelectComSkuChild]
(
@SkuId nvarchar(50)
)
ASdeclare @skus nvarchar(max)BEGIN set @skus = (select CombinationDetail from T_ERP_Sku where Id = @SkuId)
select [Id] ,[ItemOuterId] ,[OuterId]
from [dbo].[T_ERP_Sku]
where ';'+RTRIM(@skus)+';' like '%;'+RTRIM([Id])+';%' END