苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

12
返回列表 发新帖
楼主: sandy1231

[其他] 请问C#客户端怎么保存数据?

[复制链接]
发表于 2014-1-15 17:31:25 | 显示全部楼层

连接字符串是对的,好像报的是表不存在。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2014-1-15 18:05:28 | 显示全部楼层
站长苏飞 发表于 2014-1-15 17:31
连接字符串是对的,好像报的是表不存在。

表也存在的,问题应该是我之前执行的代码中给数据库加了密码,所以访问不到才报错。但是现在有个问题,执行了一句sql后,数据库被清空了,里面一张表都没有,只有默认的几张系统表
[C#] 纯文本查看 复制代码
 string filePath = @"D:\Article.db";
            System.Data.SQLite.SQLiteConnection.CreateFile(filePath);
            System.Data.SQLite.SQLiteConnection Conn = new System.Data.SQLite.SQLiteConnection();
            System.Data.SQLite.SQLiteConnectionStringBuilder ConnStr = new System.Data.SQLite.SQLiteConnectionStringBuilder();
            ConnStr.DataSource = filePath;
            //ConnStr.Password = "Admin";//设置密码,SQLite ADO.NET实现了数据库密码保护
            Conn.ConnectionString = ConnStr.ToString();
            Conn.Open();
            System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand();
            string Sql = "Insert into Admin(UserName,UserPass) values ('admin','123456')";
            cmd.CommandText = Sql;
            cmd.Connection = Conn;
            cmd.ExecuteNonQuery();


这个应该是sql语句写错了吧,报错:SQL logic error or missing database
no such table: Admin
然后用数据库管理软件打开数据库发现里面被清空了。飞哥这是什么问题呢?如果是因为sql语句错误而数据库会被清空,那不是很危险么。。。
 楼主| 发表于 2014-1-15 19:16:14 | 显示全部楼层
站长苏飞 发表于 2014-1-15 17:31
连接字符串是对的,好像报的是表不存在。

还有个问题就是 为什么明明数据库文件不存在,但是还会创建这个文件,然后打开连接。  //D:\111Article.db不存在

SQLiteConnection conn = new SQLiteConnection(@"Data Source=D:\111Article.db");
            conn.Open();

            if (conn.State==ConnectionState.Open)
            {
                MessageBox.Show("连接成功");
            }
            else
            {
                MessageBox.Show("连接失败");
            }


 楼主| 发表于 2014-1-15 19:16:47 | 显示全部楼层
这样的话不是无法判断连接成功了么?
发表于 2014-1-16 07:59:02 | 显示全部楼层
sandy1231 发表于 2014-1-15 19:16
还有个问题就是 为什么明明数据库文件不存在,但是还会创建这个文件,然后打开连接。  //D:\111Article.d ...

可以在连接之前先判断下文件是否存在。或者调试看看是什么状态
 楼主| 发表于 2014-1-16 21:59:07 | 显示全部楼层
解决了 谢谢,原来Sqlite和Sqlserver在C#中使用是一样的,从网上复制来的代码 才发现原来是这句重复创建了数据库 string filePath = @"D:\Article.db";
           System.Data.SQLite.SQLiteConnection.CreateFile(filePath);
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2025-2-28 17:51

© 2014-2021

快速回复 返回顶部 返回列表