c++读取数据库表数据并赋值给数组

c++读取数据库表数据并赋值给数组,第1张

随意换行)

那么有2个方案(个人设想):

其一,先预读一行(按字符读入一个够大的数组),统计其中的空格数,空格数减1就是每行需要读取的数据个数。(大概可以用getline来处理)

其二,预先获取整个文件的总行数(=城市个数)。代码是网上Ctrl+V来的

int CountLines(char filename)

{

ifstream ReadFile;

int n=0;

char line[512];

ReadFileopen(filename,ios::in);//ios::in 表示以只读的方式读取文件

if(ReadFilefail())//文件打开失败:返回0

{

return 0;

}

else//文件存在

{

while(!ReadFileeof())

{

ReadFilegetline(line,512,'\n');

n++;

}

return n;

}

//建议在 ListBox 显示;

//如要在textbox中显示出来,请适当修改程序。

//在最前部加上 using SystemDataSqlClient;

//把下列代码复制到某个事件程序中:

SqlConnection conn = new SqlConnection (你的数据库连接字符串);

string cmdText = "SELECT name FROM syssysobjects WHERE (xtype = 'U')";

SqlCommand cmd = new SqlCommand(cmdText, conn);

connOpen();

SqlDataReader reader = cmdExecuteReader();

while (readerRead())

{

listBox1ItemsAdd(reader[0]ToString()) ;

}

readerClose();

1、使用insert方法插入记录

sqlitedatabase的insert方法的签名为long

insert(string

table,string

nullcolumnhack,contentvalues

values),这个插入方法的参数说明如下:

table:代表想插入数据的表名。

nullcolumnhack:代表强行插入null值的数据列的列名。

values:代表一行记录的数据。

insert方法插入的一行记录使用contentvalues存放,contentvalues类似于map,它提供了put(string

key,xxx

value)(其中key为数据列的列名)方法用于存入数据、getasxxx(string

key)方法用于取出数据。

例如如下语句:

contentvalues

values=new

contentvalues();

valuesput("name","孙悟空"):

valuesput("age",500);

//返回新添记录的行号,该行号是一个内部直,与主键id无关,发生错误返回-1

long

rowid=dbinsert("person_inf",null,values);

2、使用update方法更新数据

sqlitedatabase的update方法签名为update(string

table,contentvalues

values,string

whereclause,string[]

whereargs),这个更新方法的参数说明如下:

table:代表想要更新数据的表名。

values:代表想要更新的数据。

whereclause:满足该whereclause子句的记录将会被更新。

whereargs:用于为whereargs子句传递参数。

例如我们想要更新person_inf表中所有主键大于20的人的人名,可调用如下方法:

contentvalues

values=new

contentvalues();

//存放更新后的人名

valuesput("name","新人名");

int

result=dbupdate("person_inf",values,"_id>",new

integer[]{20});

3、使用delete方法删除记录

sqlitedatabase的delete方法签名为delete(string

table,string

whereclause,string[]

whereargs),这个删除的参数说明如下:

table:代表想删除数据的表名。

whereclause:满足该whereclause子句的记录将会被删除。

whereargs:用于为whereargs子句传入参数。

删除person_inf表中所有人名以孙开头的记录

int

result=dbdelete("person_inf","person_name

like

",new

string[]{"孙_"});

4、使用query方法查询记录

sqlitedatabase的query方法签名为cursor

query(boolean

distinct,string

table,string[]

columns,string

selection,string[]

selectionargs,string

groupby,string

having,string

orderby,string

limit),这个query方法的参数说明如下。

distinct:指定是否去除重复记录。

table:执行查询数据的表名。

columns:要查询出来的列名。

selection:查询条件子句。

selectionargs:用于为selection子句中占位符传入参数值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。

groupby:用于控制分组。

having:用于对分组进行过滤。

orderby:用于对记录进行排序。

limit:用于进行分页。

例如查询出person_inf表中人名以孙开头的数据

cursor

cursor=dbquery("person_inf",new

string[]{"_id,name,age"},"name

like

",new

string

[]{"孙%"},null,null,"personid

desc","5,10");

cursorclose();

string connStr = "Provider=MSDAORA;Data Source=dbname;User ID=user_name;Password=sa;Unicode=True"; //dbname是你的数据库名 user_name是你的数据库登陆名

//sa是密码

string sqlStr = "select from baojing";

OleDbConnection oledbconn = new OleDbConnection(connStr); //新建个数据库联接

OleDbCommand oledbcom = new OleDbCommand(sqlStr, oledbconn);

oledbconnOpen();

OleDbDataAdapter adp = new OleDbDataAdapter(oledbcom);

DataSet ds1=new DataSet();

adpFill(ds1, "srctable");

/

下一步就是new一个数据显示空间,把datasource设为ds1

别忘了这个:using SystemDataOleDb;

/

可能不甚了解。本文就介绍了怎么样在Excel软件中获取其它数据库中的数据,以便在常用的数据处理软件中利用其它数据库中的数据。

关键字:Microsoft Excel,数据库,导入,表,Microsoft uery。

一、Microsoft Excel 2003简介

Microsoft Excel 2003是Microsoft Office 2003中的一个组件,它是一个高效、实用的电子表格软件,具有强大的数据处理与数据分析能力,为广大用户进行数据处理提供了一个很好的工具,也为广大的用户所熟悉。如何在Excel中利用其它数据库中的数据呢?

二、导入其它数据库表中的数据到Excel中

在Microsoft Excel中导入其它数据库表中的数据的方法非常简单。具体 *** 作步骤如下:

第一步,启动Microsoft Excel,新建或者打开需要数据的工作簿,选中相应的工作表,并选中新导入的数据存放的起始单元格;

第二步,执行“数据”→“导入外部数据”子菜单下的“导入数据”命令,在对话框中选择要导入的数据所在的文件的类型,并通过对话框中的“查找范围”后面的下拉箭头找到要导入的数据文件所在的位置。

第三步,选中要导入的文件,单击图1所示对话框中的“打开”按钮。至此,选中的数据表中的数据就导入到了当前工作簿的当前工作表中了,当然也可以将导入的数据放在新的工作表中。

举例:在Excel工作簿“导入XLS”中的sheet1工作表导入一个VFP(Visual FoxrPro,下同 )中的表(学生dbf)中的数据。导入的具体 *** 作步骤如下:

首先打开工作簿“导入XLS”,选中sheet1工作表,如图2所示;执行“数据”→“导入外部数据”子菜单下的“导入数据”命令,在对话框中选择要导入的数据的文件的类型,并通过对话框中的“查找范围”后面的下拉箭头找到要导入的数据文件所在的位置;选中要导入数据的dbf文件(此例的选择见图3),单击“打开”按钮。这样,就在Excel工作簿“导入XLS”中的sheet1工作表中导入了VFP中建立的数据库表文件“学生dbf”中的数据。结果如图4所示。

以上是在Excel工作表中导入VFP数据表中的数据的 *** 作方法。如果要在Excel工作表中导入其它数据库表中的数据, *** 作方法基本相似。说明以下几点:

在数据库中写一个存储过程,名字是pro_getall

select from 表

在函数中这个写

private void Loadaccess()

{

string sqlconn="联机字符串";

sqlconnection conn=new sqlconnection(sqlconn);

string sql="exec pro_getall";

SqlDataAdapter adapter = new SqlDataAdapter(sql, sqlconn);

DataSet set = new DataSet();

adapterFill(set);

int count=setTables[0]Rowscount; //这个就是所有记录的数量

}

不知道符不符合你的要求

前面说的很清楚,偏偏提问不清楚,你做什么 *** 作时报的错啊

1、这个错误很明显,就是表不存在。但你明明建表了,不会不存在。只可能是用户或权限问题。

2、具体来说,建表空间data_space和建用户yong的都没错,授权连接也没错。可你授权连接后应该先退现在的用户,然后用你的yong用户登录进去,在yong用户下建表sys_user,不用指定表空间data_space,因为你的yong用户已经关联到该表空间了,所以yong用户下所有的表都默认在这个空间。

3、如果你没有在yong用户下建sys_user表,那你这张表实际时建在了你开始登录时使用的用户下。当你访问yong用户下的sys_user表时自然不存在。如果你建在yong用户下了,那么只要你不是在yong用户下对该表进行 *** 作,都要带用户名访问,具体为yongsys_user。说来说去都是一个问题,表所在的用户和你当前所在的用户不是一个。

以上就是关于c++读取数据库表数据并赋值给数组全部的内容,包括:c++读取数据库表数据并赋值给数组、c#读取数据库的表、VC 读取SQLite数据库中的表的数据,该怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9353462.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存