SQL语句怎么单独只用在datatable中呢?

wb186 2008-12-24 09:24:16
做一点小东西,以前只会固定的用类似
sqlconnection conn="server=;database=;user=;password="
sqladapter sda=new sqladapter (sql语句,conn );
dataset ds=new dataset();
sda.fill(ds);
这样的语句,就是sql语句在远程连接或者本地的sql数据库才用。

现在我的程序里没有跟任何sql数据库联系,只是自己有一个datatable dt;
id name
1 我
1 他
2 你
3 它

我现在想用sql中的distinct,来生成类似
id name
1 他
2 你
3 它
的表

另外还想生成一个,应该是利用select count(*)
id name count
1 他 2
2 你 1
3 它 1
的表。

求教高手
...全文
89 点赞 收藏 6
写回复
6 条回复
ws_hgo 2008年12月24日
/*
我现在想用sql中的distinct,来生成类似
id name
1 他
2 你
3 它
的表

另外还想生成一个,应该是利用select count(*)
id name count
1 他 2
2 你 1
3 它 1
*/
//1
"select distinct(id),name from datatable"
//2
"select distinct(id),name,count(name) [count] from datatable"
回复 点赞
wb186 2008年12月24日
4楼的是??貌似跟我的问题关系不是很大
回复 点赞
ws_hgo 2008年12月24日
    BJProduct Product = new BJProduct();
BJProductCategory Category = new BJProductCategory();
//int id;
int cid;
DataTable myDataTable = new DataTable();
DataColumn myDataColumn = new DataColumn();
DataRow MyRow;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ShowCategory();

}
}
//得到产品类别ID然后显示下级分类信息,根据下级分类类别得到该类别下的产品
protected void ShowCategory()
{
int row;
Category.ParentID = 62;
DataTable dt1 = WebManager.List(Category, "", "[ID],[Title],[ParentID]", "&parentid=", "[OrderNo]");
row = dt1.Rows.Count;
if (dt1.Rows.Count > 0)
{
AddDataTable();

for (int i = 0; i < dt1.Rows.Count; i++)
{
int a = Convert.ToInt32(dt1.Rows[i][0].ToString());
Product.ParentID = a;
DataTable dt = WebManager.List(Product, "", "[ID],[Title],[PictureUrl]", "&parentid=", "[OrderNo]");
if (dt.Rows.Count > 0)
{
for (int n = 0; n < dt.Rows.Count; n++)
{
MyRow = myDataTable.NewRow();
MyRow["ID"] = dt.Rows[n][0].ToString();
MyRow["Title"] = dt.Rows[n][1].ToString();
MyRow["PictureUrl"] = dt.Rows[n][2].ToString();
myDataTable.Rows.Add(MyRow);
}
}



ShowProductInfo();
}


}

}
//建一个数据表
protected void AddDataTable()
{
//编号
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.Int32");
myDataColumn.ColumnName = "ID";
myDataTable.Columns.Add(myDataColumn);
//标题
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "Title";
myDataTable.Columns.Add(myDataColumn);
//图片
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = "PictureUrl";
myDataTable.Columns.Add(myDataColumn);

}
//显示解决方案类别下的产品信息
protected void ShowProductInfo()
{
//Product.ParentID = cid;
//DataTable dt = WebManager.List(Product, "", "[ID],[Title],[PictureUrl]", "&parentid=", "[OrderNo]");
DLProductInfo.DataSource = myDataTable;
Ascpager1.DataSource = myDataTable.DefaultView;
DLProductInfo.DataSource = Ascpager1.PageDataSource;
DLProductInfo.DataBind();
}
回复 点赞
wb186 2008年12月24日
我现在的情况就是压根自己程序里面生成的datatable就是
id name
1 我
1 他
2 你
3 它
这样的了,程序中是没有跟sql数据库有任何关系的。我只是用过sql,看能不能这样用。我不可能再利用第一种方法了,2楼的意思就是在我这种情况下是不能利用sql的?也就是说sql只能用于sql数据库??
回复 点赞
zpzpyesterday 2008年12月24日
方法1
从数据库中取出数据
id name
1 我
1 他
2 你
3 它
时,根据自己的需要先行加工,生成下面的
id name
1 他
2 你
3 它

id name count
1 他 2
2 你 1
3 它 1
这样的话,在应用程序中使用datatable时,就能容易些。

方法2
这种情况下,还是声明几个数组,通过循环,把对应的id,name等值,
放入到数组中。
然后,把各个数组中的数据取出来,以新的datarow的形式,添加到datatable中去。
这些都要在C#等开发语言写,不能用sql吧。
回复 点赞
wb186 2008年12月24日
忘说了,我用c#
回复 点赞
发动态
发帖子
疑难问题
创建于2007-09-28

9308

社区成员

12.1w+

社区内容

MS-SQL Server 疑难问题
社区公告
暂无公告