50分 高分急求!vb数据库自动编号问题

50分 高分急求!vb数据库自动编号问题,第1张

你的问题是你用错了控件,我这个是ADO连接数据库。你用的是ADODC加DATAGRID连接的。所以出错。你自己看我声明数据库的时候是ADODB

Call

OpenConn

'用CALL

调用OPENCONN函数

sql

=

"select

hfid

from

hfb

ORDER

BY

hfid"

'打开hfb表,hfid是自动编号的数据

,里面的hfb和hfid都是我自己随便写的名字,hfd是表的名字,hfid是要自动编号的字段

rs.Open

sql,

cn,

1,

1

'rs是打开数据库后可以调用数据库的名称

If

rs.RecordCount

>

0

Then

’假如数据库中的内容大于0,即数据库中有数据,不是空的

rs.MoveLast

'则移动到数据库的最后面一个数据,例如现在编号是HF00001~HF00009,就移动到HF00009

txtHFID.Text

=

"HF"

&

Format(Val(Right(rs.Fields("hfid"),

5)

+

1),

"00000")

'生成的为HF00009+1

为HF00010,即自动在最后的编号基础上加1

,里面的TXTHFID是文本框的名称,根据你自己的修改。RS.FIELDS(A)是指你现在打开的这个数据库中的字段A的数值

Else

txtHFID.Text

=

"HF00001"'如果没有数据,自动生成HF00001

End

If

Call

CloseConn

’关闭数据库

,CLOSECONN也是函数名臣,你可以修改

txtdate.Text

=

Format(Date,

yyyymmdd)

’日期就比较简单了,直接赋值就可以了。

最后的是打开和关闭数据库的代码:

Public

Sub

OpenConn()

’函数声明

Set

cn

=

New

ADODB.Connection

’声明CN为新的数据库链接

Set

rs

=

New

ADODB.Recordset

’声明RS

cn.CursorLocation

=

adUseClient

cn.Open

"Provider=Microsoft.Jet.OLEDB.4.0Data

Source=\\dell745\data\data.ccJet

OLEDB:Database

Password=123Persist

Security

Info=False"

'打开的是网络里的DELL745计算机下面的DATA文件夹下面的DATA.CC文件,密码是123.

End

Sub

'关闭数据库连接

Public

Sub

CloseConn()

rs.Close

’关闭链接

Set

rs

=

Nothing

’清0

cn.Close

Set

cn

=

Nothing

End

Sub

我想你要的是我着个

GridView 加入自动编号的栏位

此范例是示范如何在 GridView 加入一个自动编号的字段,以标示该数据列的编号。

首先在 GridView 第一栏加入一个 TemplateField,并在 TemplateField 的 ItemTemplate 加入一个 Label (ID=lblNo),asxp 对应程序代码如下。

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"

DataKeyNames="Flag,ID" DataSourceID="SqlDataSource1" EmptyDataText="没有数据录可显示。">

<Columns>

<asp:TemplateField HeaderText="序号">

<ItemTemplate>

<asp:Label ID="lblNo" runat="server" Text="Label"></asp:Label>

</ItemTemplate>

<ItemStyle Wrap="True" />

<HeaderStyle Wrap="False" />

</asp:TemplateField>

</Columns>

</asp:GridView>

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="Flag,ID" DataSourceID="SqlDataSource1" EmptyDataText="没有数据录可显示。">

<Columns>

<asp:TemplateField HeaderText="序号">

<ItemTemplate>

<asp:Label ID="lblNo" runat="server" Text="Label"></asp:Label>

</ItemTemplate>

<ItemStyle Wrap="True" />

<HeaderStyle Wrap="False" />

</asp:TemplateField>

</Columns><

/asp:GridView>

然后在 GridView 的 RowDataBound 事件中,设定每一列的 lblNo 的 Text 属性值为 RowIndex+1。

因为 RowIndex 起始编号为 0 ,故每列的自动编号为 RowIndex+1。

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

Dim oLabel As Label

If e.Row.RowType = DataControlRowType.DataRow Then

oLabel = CType(e.Row.Cells(0).FindControl("lblNo"), Label)

oLabel.Text = (e.Row.RowIndex + 1).ToString()

End If

End Sub

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

Dim oLabel As Label

If e.Row.RowType = DataControlRowType.DataRow Then

oLabel = CType(e.Row.Cells(0).FindControl("lblNo"), Label)

oLabel.Text = (e.Row.RowIndex + 1).ToString()

End If

End Sub

以上的写法遇到 GridView 分页时,都是由 1 开始编号,若需分页需要接续编号,可改用修改如下。

GridView1.RowDataBound Handles System.Web.UI.WebControls.GridViewRowEventArgs) As e ByVal Object, sender GridView1_RowDataBound(ByVal Sub 1 Protected>2

Dim oLabel As Label

Dim oGridView As GridView

If e.Row.RowType = DataControlRowType.DataRow Then

oGridView = CType(sender, GridView)

oLabel = CType(e.Row.Cells(0).FindControl("lblNo"), Label)

oLabel.Text = (oGridView.PageIndex * oGridView.PageSize) + (e.Row.RowIndex + 1).ToString()

End If

End Sub

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As _

System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

Dim oLabel As Label

Dim oGridView As GridView

If e.Row.RowType = DataControlRowType.DataRow Then

oGridView = CType(sender, GridView)

oLabel = CType(e.Row.Cells(0).FindControl("lblNo"), Label)

oLabel.Text = (oGridView.PageIndex * oGridView.PageSize) + (e.Row.RowIndex + 1).ToString()

End If

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9947440.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存