关于VB.NET连接字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于VB.NET连接字符串相关的知识,希望对你有一定的参考价值。

写了一个类,代码如下
Public Class gztj
Public Shared Sub tj1(ByVal cc As String, ByVal jj As TextBox)
Dim cs As String
cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=L:\te1\TEST\WebSite1\db.mdb"
Dim conn As New OleDbConnection(cs)
conn.Open()
Dim da As String = "SELECT Count(检测项目) FROM b where 检测项目='cc'"
Dim cmd As New OleDbCommand(da, conn)
Dim C As Integer = cmd.ExecuteScalar()
jj.Text = C.ToString
conn.Close()
End Sub

End Class
然后我调用
gztj.tj1("有机碳", TextBox2) 统计出来的是0个,而我直接把
Dim da As String = "SELECT Count(检测项目) FROM b where 检测项目='cc'" 中的CC直接改成 有机炭 就可以正常统计,请问哪里写错?
另外还问下,如果有textbox1 和textbox2 要在textbox里面输入日期,跟数据库里面的一个保存时间的列比较,该咋样写,如 tb1<表.完成时间<tb2
谢谢 如果我的检测项目有些特殊符号,比如 买、卖 卖/买 买-卖 CC那里该咋改

参考技术A Dim da As String = "SELECT Count(检测项目) FROM b where 检测项目='cc'"

这句写错啦,你直接传送的是检测项目为字符串"cc"的参数,并不是你程序写的CC参数
改为:
Dim da As String = "SELECT Count(检测项目) FROM b where 检测项目='" & cc & "'"

建议通过程序组织的sql语句可以通过msgbox da 弹出来看看,这样你较容易查出是什么错误,较长的就用textbox1.text=da来看了,不过记得设置断点"exit sub"

使用ACCESS数据库的日期列比较,应为:
"select * from 表 where 日期列=" &"#" & cdate(textbox1.text) &"#"
注意前后两个“#”号
使用sqlserver
"select * from 表 where 日期列=" &"'" & cdate(textbox1.text) &"'"
当然日期格式要注意,如长短日期等。

日期期间:between 小日期 and 大日期(记得加#号)本回答被提问者采纳
参考技术B 1、Dim da As String = "SELECT Count(检测项目) FROM b where 检测项目='" & cc & "'"
如果用模糊查询就用
Dim da As String = "SELECT Count(检测项目) FROM b where 检测项目='%" & cc & "%'"
2、
"select * from b where 表.完成时间>#"& tb1 &"# and 表.完成时间<#"& tb2 &"# "

VB.net - 活动目录连接字符串

【中文标题】VB.net - 活动目录连接字符串【英文标题】:VB.net - Active Directory Connection String 【发布时间】:2017-12-15 18:29:42 【问题描述】:

所以我有一个问题,我似乎无法弄清楚。 我需要一个连接字符串以允许程序使用 Active Directory 帐户连接到 SQL Server。

但是,Active Directory 帐户与登录帐户的用户不同,因为我们不想让用户仅访问程序即可访问 SQL...如何配置连接字符串以使用程序AD 帐户而不是用户的 AD 帐户?

【问题讨论】:

您可以简单地将程序 AD-Account 插入连接字符串而不是用户 AD 吗?你试过这个吗?或者请说明您的问题! 你有例子吗? 【参考方案1】:

如果您想为您的程序使用专用服务帐户,则需要使用 SQL(混合)登录而不是集成登录。

无法使用来自与运行当前进程的帐户不同的 Active Directory 帐户的凭据连接到 Sql Server。在进行集成 Active Directory 身份验证时,Sql Server 仅使用域颁发的令牌。它甚至都看不到密码,因此没有可以编写的连接字符串来进行登录。

您最接近的方法是在 Windows 中设置一个计划任务,以您所需的用户帐户运行您的应用程序。然后,您可以授予其他帐户访问权限以启动该任务。

【讨论】:

好的,所以我认为要么我解释得不够好,要么我不理解您的答案...我正在尝试使用集成安全性连接到 SQL 数据库...但是运行应用程序的用户无权访问 SQL Server,因此它失败了。那么当用户没有或不允许访问 SQL Server 时,如何使用 AD 连接到 SQL 数据库? @MarkSmith 您授予该帐户对服务器的访问权限。 SQL Server 不会验证 Active Directory 凭据。 从来没有。当用户登录到连接到 Active Directory 的计算机时,他们会获得一个身份验证令牌。 Sql Server 集成身份验证将仅验证这些令牌。集成身份验证从不检查任何人的用户名或密码。将不同 AD 用户的令牌发送到 Sql Server 的唯一方法是以该用户身份运行程序(按住 shift 键,右键单击程序图标,然后使用“以不同用户身份运行”选项)。 好的,谢谢...我最终使用模拟来允许程序使用与当前登录用户不同的 AD 帐户。

以上是关于关于VB.NET连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何为我的项目(VB.Net)中的所有水晶报表设置全局连接字符串

在VB.net中,连接SQL Server数据库的连接字符串的问题。

从 VB.Net 中的 app.config 获取动态更新的连接字符串

如何在 vb.net 中完全关闭 SQLConnection 字符串?

[VB.NET Tips]再谈字符串连接之内置池

vb.net链接数据库怎么出现链接不上请大神指点?