ado数据库查询
⑴ delphi ADOQuery1查询数据库结果怎么显示
最少三个控件:
1.dbgrid 。
2.datasource 在data access里面
3.adoquery。
设置 adoquery的connection。可以写语句
也可以放置 adoconnection。。。在ado里面
设置adoconnection的connectstring
设置 datasource的dataset为adoquery1
设置 dbgrid的datasource为datasource1
这个就是sql的啊。晕。。
不要看见access就说是access的啊。这个就是sql的。
一般来说按钮事件
begin
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from table');
open;
{
sql.add('insert into table (a,b,c) value(a,b,c)');
execsql;
}
{
sql.txt:='update table set a=a ';
execsql;
}
end;
end;
这些都是典型的。。。。晕。
⑵ vb6如何用ado跨数据库查询多个xls的数据
你既然单个ado可以操作数据库,那对于操作多个数据源,应该可以使用多个不同的ado对象分别操作不同的数据源,从而进行所谓的跨数据源操作的呀?
提示:ado1操作数据库1,ado2操作数据库2,然后所谓跨数据库,无非就是在使用数据前的对象指明ado1或ado2就可以了呀!
⑶ 数据库ADO如何读取数据
m_pRecordset.CreateInstance(ADODB.Recordset);
m_pRecordset-Open(_bstr_t(str),_variant_t((IDispatch*)con-m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
if (m_pRecordset-GetPageCount()!=0) 数据集中记录为0,则无法读取。{m_pRecordset-MoveFirst(); 指针移到第一个记录位置
while (!m_pRecordset-adoEOF) 数据集中记录指针未指向最后记录时{_variant_t user_id; 定义user_id
CString s_id; 定义s_id
user_id=m_pRecordset-GetCollect(USER_ID);
//***********读取出参数***************
s_id= (LPCTSTR)_bstr_t(user_id);
m_username.AddString(s_id);
);
⑷ VB中ADO对数据库的查询
调试过程中哪条语句出错了呢?最好标示出来,这样查找原因就方便许多
Public Function getrs(ByVal strsql As String) As ADODB.Recordset
Dim rs As New ADODB.Recordset
Dim conn As New ADODB.Connection
On Error GoTo getrs_error
conn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=e:\VB程序\后台\temp\后台数据库.mdb"
conn.Open
rs.Open Trim(strsql), conn, adOpenKeyset, adLockOptimistic
Set getrs = rs
getrs_exit:
Set rs = Nothingb & 将这句删除 try it
Set conn = Nothing & 将这句删除 try it
Exit Function
⑸ 怎么用ADO查询数据库里有几个表
CString m_strConnect;
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
CStringList* m_pStrList;
m_strConnect = "Provider=SQLOLEDB.1;Server=127.0.0.1;Database=student/*student为数据库名*/;uid=sa;pwd=123456/*123456为数据库密码*/";
m_pConnection.CreateInstance(__uuidof( Connection ));
m_pConnection->Open((LPCSTR)m_strConnect,"","",adModeUnknown);
m_pRecordset.CreateInstance(__uuidof(Recordset));
CString strSelect("select Name from sysobjects where xtype='u' and status>=0");
m_pRecordset->CursorType = adOpenStatic;
m_pRecordset->CursorLocation = adUseClient;
m_pRecordset->CacheSize = 1000L;
m_pRecordset->Open((LPCTSTR)strSelect, m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
LONG lCount = m_pRecordset->GetRecordCount();
lCount就是用户表的个数了,你也可以用记录集指针m_pRecordset遍历取得表名
⑹ 怎么将通过ado从数据库取出的数据取出
1、查询数据库(test)中的所有表名的方法:
SELECT name
FROM [test]..sysobjects where xtype='U'
********
补充:
如果有的表不存在【时间】那就用下面的语句直接把含有【时间】列的表名找到:
SELECT d.name
FROM [test]..syscolumns a
inner join [test]..sysobjects d on a.id=d.id and d.xtype='U' and a.name='时间'
**********
2、遍历这个表名取出数据插入到另外的数据库中(SqlServer中的遍历方法我不是很清楚,给你提供个思路,oracle的话我就能把程序写出来了O(∩_∩)O~)。
如:遍历结果存储到数据库test2中
⑺ vb中怎样把ADO所连接的数据库中的内容查询出来并在DATAGRID中显示出来
'给你代码参考:
'比如说你要查询资料栏位"姓名"等于text1.text就显示在DataGrid
ADODC1.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;Persist security info= False; Data source=" & App.Path & "\数据库名称.mdb"
ADODC1.CommandType = adCmdText
ADODC1.RecordSource = “select * from 资料表名称 where 姓名 = '" & Text1.Text & "'"
ADODC1.Refresh
'设置DataGrid显示资料表里的资料
Set DataGrid1.DataSource =ADODC1
DataGrid1.Refresh
⑻ ADO.NET数据库查询
关于Sql注入的基本概念经典的注入语句是' or 1=1--
单引号而截断字符串,“or 1=1”的永真式的出现使得表的一些信息被暴露出来,如果sql语句是select * from 的话,可能你整个表的信息都会被读取到,更严重的是,如果恶意使用都使用drop命令,那么可能你的整个数据库得全线崩溃。
当然,现在重点不是讲sql注入的害处,而是说说如何最大限度的避免注入问题。
sql注入的存在在最大危害,是sql的执行语句没有和控制语句分开,我们想要select一些东西,但用户可能拼出' or 1=1甚至再加上delete/update/drop,后来是属于控制语句了,所以要避免sql的注入,就必须把查询语句与控制语句分开。
SqlParameter给我们提供了一个很好的类,有了它,我们可以不现拼接字符串,也可以不再担心单引号带来的惨剧,因为,这一切会有人来为我们完成的。
简单的给个示例
传统的查询语句的sql可能为
string sql="select * from users where user_id='"+Request.QueryString["uid"]+"'";
很显然,我们在这里拼接了字符串,这就给sql注入留下了可乘之机。
现在,我们要改写这样的语句,使用SqlParameter来做
SqlCommand SqlCmd = new SqlCommand(sql, SqlConn);
SqlParameter _userid = new SqlParameter("uid", SqlDbType.Int);
_userid.Value = Request.QueryString["u_id"];
SqlCmd.Parameters.Add(_userid);
这样,我们可以保证外接参数能被正确的转换,单引号这些危险的字符也会转义了,不会再对库造成威胁。
当然,这仅是一个示例而已,在真实的情况下,可能你还要对 Request.QueryString["u_id"]进行必要的检测与分析,这样才安全
所以,使用参数化的sql语句,是一种很好的做法,不过,我们也还有更好的办法,那就是使用参数化的存储过程,如果你有兴趣,可以继续探讨。
----转载
⑼ vc++ ADO数据库编程如何实现查询功能
ADO--------详请情自行网络VC ADO ACCESS。。
变量:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
_CommandPtr m_pCommand;
初始化:
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->ActiveConnection = m_pConnection;
链接数据库:
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\\data.mdb","","",adConnectUnspecified );
如果要查询:
构造SQL语句:
m_pCommand->CommandText = "SELECT * FROM 一个表 WHERE 要查询字段=网络;";
执行上述SQL语句:
m_pRecordset = m_pCommand->Execute(NULL, NULL,adCmdText);
结果将存于m_pRecordset中,然后用m_pRecordset->MoveFirst()和m_pRecordset->MoveNext()来定位查询结果,m_pRecordset->GetCollect()来获取相应的列。
==================================================
其实我也不是很明白。。。但是这样总归是可以的:
SELECT * FROM 表1 WHERE 字段1=要查询的内容 OR 字段2=要查询的内容 OR 字段3=要查询的内容;
如果是需要查找包含某词的内容的话,应该是: WHERE 字段1=*某词*
星号表示通配符。
⑽ access数据库 用ado组件 怎么实现查询多句sql语句
你用代码去操作不就完事了,何必用控件去设置