在MS Access中的操作员之间 [英] Between operator in MS Access

查看:81
本文介绍了在MS Access中的操作员之间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我正在编写代码,在Access数据库中插入一个日期,然后从MS Access数据库中获取数据,范围从fromdate(Datetimepicker)到todate(Datetimepicker).但这显示空白输出,任何人都可以帮我.

这是在Access db中插入日期的代码
私人子Save()
试试
Dim maxnum As Integer
昏暗的dateofintro作为字符串
maxnum = cDS.GetMaxCounters(从CandidateMaster中选择最大(CandidateID);")
maxnum = maxnum +1
dateofintro = DateTimePicker1.Value
conn.Open()
sqlcmd =插入CandidateMaster(CandidateID,CandidateName,DateOfIntro,ContactNo1,ContactNo2,EmailID1,EmailID2,Address1,Address2,VisaType)values(" + maxnum.ToString()+," +""+ TextBox1.Text + "," + dateofintro.Substring(0,10)+'',''" + Con1.ToString()+'',''" + Con2.ToString()+'',' '"+ Email1.ToString()+"'',''"+ Email2.ToString()+"'',''"+ Add1.ToString()+"''," + Add2.ToString() +'',""+ ComboBox1.Text.ToString()+"'')"
cmd.CommandText = sqlcmd
cmd.ExecuteNonQuery()
conn.Close()
ds.Clear()
conn.close()


这是用于从Access db获取数据的代码.

Hi Everyone,

I am writing a code insert a date in access db and then to fetch data from MS access db range between fromdate(Datetimepicker) to todate(Datetimepicker). But it is showing blank output, can anyone help me.

Here is the code to insert date in access db
Private Sub Save()
Try
Dim maxnum As Integer
Dim dateofintro As String
maxnum = cDS.GetMaxCounters("SELECT Max (CandidateID) FROM CandidateMaster;")
maxnum = maxnum + 1
dateofintro = DateTimePicker1.Value
conn.Open()
sqlcmd = "insert into CandidateMaster (CandidateID, CandidateName,DateOfIntro,ContactNo1,ContactNo2,EmailID1,EmailID2,Address1, Address2, VisaType) values(" + maxnum.ToString() + "," + "''" + TextBox1.Text + "'',''" + dateofintro.Substring(0, 10) + "'',''" + Con1.ToString() + "'',''" + Con2.ToString() + "'',''" + Email1.ToString() + "'',''" + Email2.ToString() + "'',''" + Add1.ToString() + "'',''" + Add2.ToString() + "'',''" + ComboBox1.Text.ToString() + "'')"
cmd.CommandText = sqlcmd
cmd.ExecuteNonQuery()
conn.Close()
ds.Clear()
conn.close()


This is the code for fetching data from access db

conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.AppDomain.CurrentDomain.BaseDirectory + "CI.mdb;Jet OLEDB:Database Password= 123456")
conn.Open()
Dim fromdate, todate As String
Dim Cand_name, dat1, Dateofintro, visatype, Step_1, Step_2, Step_3, Step_4, Step_5, Step_6, Step_7, Step_8, Step_9, Step_10, Step_11, Step_12, Step_13, Step_14, Step_15 As String

fromdate = DateTimePicker1.Value.Date
todate = DateTimePicker2.Value.Date
sqlcmd = "select * from CandidateMaster where DateOfIntro between " & fromdate.Substring(0, 10) & " and " & todate.Substring(0, 10) & ""

cmd = New OleDbCommand(sqlcmd, conn)
dr = cmd.ExecuteReader




在此先感谢

[edit]已添加代码块-OriginalGriff [/edit]




Thanks in advance

[edit]Code block added - OriginalGriff[/edit]

推荐答案

而不是使用字符串,而是将代码转换为直接使用DateTime值:
Instead of playing around with strings, convert your code to use the DateTime values directly:
sqlcmd = "select * from CandidateMaster where DateOfIntro between @START and @END" 
cmd = New OleDbCommand(sqlcmd, conn)
cmd.Parameters.AddWithValue("@START", DateTimePicker1.Value)
cmd.Parameters.AddWithValue("@END", DateTimePicker2.Value)
dr = cmd.ExecuteReader

它更干净,更易读,并且可以一劳永逸地解决您的问题!

It''s cleaner, more readable, and it will probably solve your problem, all in one go!


这篇关于在MS Access中的操作员之间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆