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
的表。

求教高手
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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#

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧