
随意换行)
那么有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数据库中的表的数据,该怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)