| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
雷速体育发帖软件开发QQ118000023C语言培训|一对一辅导|零基础学编程LightningChart 快速先进的.Net图表控件
共有 719 人关注过本帖
标题:数据库语法
只看楼主 收藏
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:12
帖 子:1669
专家分:3571
注 册:2011-3-24
结帖率:98.68%
  问题点数:0  回复次数:12   
数据库语法
如何取得查询数据库后取得之资料笔数及将资料存入阵列中?
2018-01-29 17:30
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:12
帖 子:1669
专家分:3571
注 册:2011-3-24
  得分:0 
试出来查询笔数指令是 ...
Select COUNT(*) FROM [AAA] where [Time]='2018-01-29'

取得之资料笔数及将资料存入阵列只找到C#版没VB的...
看不懂...

http://blog.xuite.net/hsiung03/blog/63998150-c%23+%E5%B0%87%E8%B3%87%E6%96%99%E8%A1%A8%E5%8F%96%E5%87%BA%E6%94%BE%E5%88%B0%E9%99%A3%E5%88%97+(table+to+array)

c# 將資料表取出放到陣列 (table to array)
4273ASP.NET
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data; //使用DataTable必須的
using System.Data.SqlClient; //取得SqlClient相關物件必須的
using System.Globalization;

public partial class Update : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
    {
    }
protected void Button1_Click(object sender, EventArgs e)
    {
//建立連線物件
ConnectionStringSettings WORKFLOWGP =  ConfigurationManager.ConnectionStrings["WORKFLOWGP"];
        SqlConnection conn = new SqlConnection();
        conn.ConnectionString = WORKFLOWGP.ConnectionString;
        conn.Open();
string queryStr = "SELECT  TD001+'-'+RTRIM(TD002)+'-'+TD003,TD015 FROM PURTC INNER JOIN PURTD ON TC001 =
                          TD001 AND TC002 = TD002 WHERE  TD016 = 'N' AND TC014 = 'Y'";
        SqlDataAdapter oda = new SqlDataAdapter(queryStr, conn);
        DataTable  dt = new DataTable("PURTD");

//利用SqlDataAdapter的Fill方法將DB取出的data塞入DataTable中,再利用DataTable取出值
oda.Fill(dt);

//從DB Load  Data到Array
object[][] LoadData = new object[dt.Rows.Count][];
for (int i = 0; i < dt.Rows.Count; i++)
        {
            LoadData[i] = new object[dt.Columns.Count];
for (int j = 0; j < dt.Columns.Count; j++)
            {
                LoadData[i][j] = dt.Rows[i][j].ToString();
            }
       }

//最後將收集起來的資料存取在陣列中
//Object[][]  LoadData = listResult.ToArray();

不要選我當版主
2018-01-29 18:14
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:12
帖 子:1669
专家分:3571
注 册:2011-3-24
  得分:0 
https://dotblogs.com.tw/yc421206/archive/2009/06/13/8811.aspx

不要選我當版主
2018-01-29 18:23
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:78
帖 子:2484
专家分:6028
注 册:2015-3-25
  得分:0 
比如你的数据结构是这样的
SQL表(id,字段1,字段2,字段3,日期)
你可以在最后或者最前,增加1个记录,就可以了.

select id,字段1,字段2,字段3,日期 from SQL表 where 日期='2018-01-29'
union all
select count(id),null,null,null,null from SQL表 where 日期='2018-01-29'

这样,就在最后1行,增加了1条记录,也就是你说的记录数,这个记录数,放在那行,就要看你具体情况了.
2018-01-30 11:54
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:12
帖 子:1669
专家分:3571
注 册:2011-3-24
  得分:0 
以下是引用mywisdom88在2018-1-30 11:54:35的发言:

比如你的数据结构是这样的
SQL表(id,字段1,字段2,字段3,日期)
你可以在最后或者最前,增加1个记录,就可以了.

select id,字段1,字段2,字段3,日期 from SQL表 where 日期='2018-01-29'
union all
select count(id),null,null,null,null from SQL表 where 日期='2018-01-29'

这样,就在最后1行,增加了1条记录,也就是你说的记录数,这个记录数,放在那行,就要看你具体情况了.


我的需求是要知道我查找出符合条件的资料共有几笔〜
之后才方便用循环〜
将每笔中选择的栏位资料加上HTML码(表格)〜
最后再邮寄出去〜

功能是使用者在网站内新增资料后〜系统能将使用者该日新增的资料寄出给相关人员〜

现在这三个需求不知道怎么组合〜最烂的方法是连续查三次〜

Protected Sub lbUpdata_Click(sender As Object, e As System.EventArgs) Handles lbUpdata.Click
Dim SQL As String
Dim ProjectItemCount As Integer = 0
Dim DHDate As String = Date.Today.Year & "-" & Date.Today.Month & "-" & Date.Today.Day
SQL = "SELECT * FROM [tblProjectDevpHistory] ​​where [DHDate] = '" & DHDate & "' And [CreatorNo] = '" & Session("LoginNo") & "'" '取出当日该员变更专案项目
SQL = "SELECT DISTINCT [ProjectNo] FROM [tblProjectDevpHistory] ​​where [DHDate] = '" & DHDate & "' And [CreatorNo] = '" & Session("LoginNo") & "'" '取出当日该员变更专案号码列表
SQL = "SELECT COUNT(*) FROM [tblProjectDevpHistory] ​​where [DHDate] = '" & DHDate & "' And [CreatorNo] = '" & Session("LoginNo") & "'" '计算取出当日该员变更专案项目数量
        Try
            SqlDataSource1 = New SqlDataSource
            SqlDataSource1.ProviderName = strDbType
            SqlDataSource1.ConnectionString = WebConfigurationManager.ConnectionStrings(strCnnType & "DbAAA").ConnectionString
            SqlDataSource1.SelectCommand = SQL
            SqlDataSource1.DataSourceMode = SqlDataSourceMode.DataSet
            args = New DataSourceSelectArguments
            Dim my_DV As Data.DataView = SqlDataSource1.Select(args)
            lvManufactureFT_AList.DataSource = my_DV
                        '???
        Catch ex As Exception
            Dim strErr As String = "●●● 程式错误讯息如下●●●" & "\n\n" & Replace(Replace(Replace(Replace(Trim(ex.ToString()), Chr(10), "") , Chr(13), ""), "\", "\\"), "'", "\'")
            ScriptManager.RegisterStartupScript(Me, Me.GetType(), "alert", "alert('" & strErr & "');", True)
        Finally
            SqlDataSource1.Dispose()
        End Try
    End Sub

不要選我當版主
2018-01-30 17:53
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:12
帖 子:1669
专家分:3571
注 册:2011-3-24
  得分:0 
要是能查完直接将数据存入阵列中~其他就简单了~

不要選我當版主
2018-01-30 18:09
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:12
帖 子:1669
专家分:3571
注 册:2011-3-24
  得分:0 
试出来了〜剩下就是纯VB的事了〜
程序代码:

.....
Dim my_DV As Data.DataView = SqlDataSource1.Select(args)
Dim dt As System.Data.DataTable = my_DV.Table
Dim Temp(my_DV.Count - 1, dt.Columns.Count - 1) As String
    For i = 0 To (my_DV.Count - 1)
        For j = 0 To (dt.Columns.Count - 1)
            Temp(i, j) = dt.Rows(i).Item(j).ToString
        Next j
    Next i
.....

不要選我當版主
2018-01-30 19:27
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:78
帖 子:2484
专家分:6028
注 册:2015-3-25
  得分:0 
-- 测试数据
/*
create table #TT(ID int,fName varchar(20),fScore numeric(10,2),fDate datetime)
insert into #TT
select 1,'张三',25.50,'2018-01-29' union all
select 2,'张三',25.50,'2018-01-29' union all
select 3,'张三',25.50,'2018-01-29' union all
select 4,'张三',25.50,'2018-01-29' union all
select 5,'张三',25.50,'2018-01-29' union all
select 6,'张三',25.50,'2018-01-30' union all
select 7,'张三',25.50,'2018-01-30' union all
select 8,'张三',25.50,'2018-01-30' union all
select 9,'张三',25.50,'2018-01-30' union all
select 10,'张三',25.50,'2018-01-30' union all
select 11,'张三',25.50,'2018-01-30' union all
select 12,'张三',25.50,'2018-01-31'
*/
select id=0,fName=null,fScore=null,fDate=null,fId=count(fDate) from #TT where fDate='2018-01-29'
union all
select id,fName,fScore,fDate,fid=0 from #tt where fDate='2018-01-29'
附件: 您没有浏览附件的权限,请 登录注册
收到的鲜花
  • wube 于 2018-01-31 17:39 送鲜花  10朵   附言:我很赞同
2018-01-30 23:58
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:78
帖 子:2484
专家分:6028
注 册:2015-3-25
  得分:0 
这个是在SQL直接查询出来的。
你可以规定ID=0时,fId的值就是你记录的个数,其他的fId都是0的
不就是你要的结果吗
2018-01-31 00:00
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:12
帖 子:1669
专家分:3571
注 册:2011-3-24
  得分:0 
以下是引用mywisdom88在2018-1-31 00:00:05的发言:

这个是在SQL直接查询出来的。
你可以规定ID=0时,fId的值就是你记录的个数,其他的fId都是0的
不就是你要的结果吗



原来还有这招~

fId 是原本资料表没有被暂时加入的吗?

[此贴子已经被作者于2018-1-31 17:43编辑过]


不要選我當版主
2018-01-31 17:39







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.196333 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved