.net-C# bcp 导入,导入界面与查询界面在一起,导入后不能再查询

问题描述

C# bcp 导入,导入界面与查询界面在一起,导入后不能再查询

在做课程设计,一个图书馆管理系统,将图书查询界面与图书导入界面放在了一起。在未导入前,查询功能没有问题,导入后,查询不到结果,sql语句返回值为-1

enter code here//图书查询sql

    private void sqlRegion()
    {
        sqlR = "";
        if (tbBookId.Text.Trim() != string.Empty)
        {
            sqlR += "and Bno ='" + tbBookId.Text.Trim() + "'";
            // sqlR += "and Bno like '% "+tbBookId.Text.Trim()+"%'";
        }
        if (tbName.Text.Trim() != string.Empty)
        {
            sqlR += "and Bname like '%" + tbName.Text.Trim() + "%'";

        }
        if (tbWriter.Text.Trim() != string.Empty)
        {
            sqlR += "and Bauthor like '%" + tbWriter.Text.Trim() + "%'";
        }
        if (tbPublish.Text.Trim() != string.Empty)
        {
            sqlR += "and Bpub like '%" + tbPublish.Text.Trim() + "%'";
        }
        if (tbPublishDate.Text.Trim() != string.Empty)
        {
            sqlR += "and Bdate like '%" + tbPublishDate.Text.Trim() + "%'";
        }
        if (tbPrice.Text.Trim() != string.Empty)
        {
            sqlR += "and Bprice like '%" + tbPrice.Text.Trim() + "%'";
        }
        if (tbBookClass.Text.Trim() != string.Empty)
        {
            sqlR += "and Bclass like '%" + tbBookClass.Text.Trim() + "%'";
        }

        if (tbISBN.Text.Trim() != string.Empty)
        {
            sqlR += "and BISBN like '%" + tbISBN.Text.Trim() + "%'";
        }

    }

    //图书查询

    private void btnserarch_Click(object sender, EventArgs e)
    {
        dt.Clear();
        ds.Clear();
        if (tbBookId.Text.Trim() == string.Empty && tbName.Text.Trim() == string.Empty
            && tbWriter.Text.Trim() == string.Empty && tbPublish.Text.Trim() == string.Empty
            && tbPublishDate.Text.Trim() == string.Empty && tbPrice.Text.Trim() == string.Empty
            && tbBookClass.Text.Trim() == string.Empty && tbISBN.Text.Trim() == string.Empty)
        {

            myCon.Open();
            sql = "select * from Book";
            cmd = new SqlCommand(sql, myCon);
            cmd.ExecuteNonQuery();
            sda = new SqlDataAdapter("select * from Book", myCon);
            sda.Fill(ds);

            dgvBookSearchResult.DataSource = ds.Tables[0].DefaultView;
            myCon.Close();
            if (ds.Tables[0].Rows.Count > 0)
            {
                dgvBookSearchResult.DataSource = ds.Tables[0].DefaultView;
                myCon.Close();
                return;

            }
            else
                MessageBox.Show("没有找到相关的记录!");

            return;

        }
        string sqlRegSearch;
        sqlRegion();
        sqlRegSearch = "select * from Book where 1=1" + sqlR;
        myCon.Open();
        cmd = new SqlCommand(sqlRegSearch, myCon);
        cmd.ExecuteNonQuery();
        int count;
        count = Convert.ToInt32(cmd.ExecuteNonQuery());
        sda = new SqlDataAdapter(sqlRegSearch, myCon);
        sda.Fill(ds);
        //dgvBookSearchResult.DataSource = ds.Tables[0].DefaultView;
        myCon.Close();
        if (ds.Tables[0].Rows.Count > 0)
        {
            dgvBookSearchResult.DataSource = ds.Tables[0].DefaultView;
            myCon.Close();
            return;

        }
        else
            MessageBox.Show("没有找到相关的记录!");

    }

enter code here private void btnImport_Click(object sender, EventArgs e)
    {
        try
        {
            string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + tbPath.Text.Trim() + ";Extended Properties ='Excel 8.0;HDR=YES;IMEX=1'";

            OleDbConnection conn = new OleDbConnection(strcon);
            conn.Open();
            string strExcel;
            strExcel = string.Format("select * from [Sheet1$]");
            OleDbDataAdapter oda = new OleDbDataAdapter(strExcel, strcon);
            oda.Fill(ds, "sheet1");
            myCon.Open();
            using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(myCon))
            {
                bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
                bcp.BatchSize = 100;//每次传输的行数
                bcp.NotifyAfter = 100;//进度提示的行数
                bcp.DestinationTableName = "Book";//目标表
                bcp.WriteToServer(ds.Tables[0]);
                MessageBox.Show("成功!");
                conn.Close();
                return;
            }

        }

        catch (Exception ex)
        {
            //"插入的图书与数据库中有重复!"
            MessageBox.Show(ex.Message);
            return;
            //System.Windows.Forms.MessageBox.Show(ex.Message);
        }
        finally
        {
            myCon.Close();

        }

    }
    void bcp_SqlRowsCopied(object sender, System.Data.SqlClient.SqlRowsCopiedEventArgs e)
    {
        this.Text = e.RowsCopied.ToString();
        this.Update();
    }

##

时间: 2016-01-13

.net-C# bcp 导入,导入界面与查询界面在一起,导入后不能再查询的相关文章

【导入导出】compress 值为y对导入对象所占空间的影响

我们知道 compress 默认Y 将第一个区占原有表的大小加compress=n 就取消了这种压缩,没有数据的话,空间也不会占用那么大了. 下面两篇文章,将分别讲述 compress=Y/N 时 导入表对表空间的占用情况.yang@ORACL> create table bigtab as select * from all_objects; 表已创建. 已用时间:  00: 00: 08.79 yang@ORACL> insert into bigtab select * from big

datagridview-从外部数据导入DATAGRIDVIEW,如何从第5行开始导入?

问题描述 从外部数据导入DATAGRIDVIEW,如何从第5行开始导入? 如题,怎么设置从第3行开始导入?如下代码该怎么改正,请各位指教. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim intColCount As Integer = 0 Dim blnFlag As Boolean = True Dim mydt As

tomcat-关于hibernate的问题,一个项目刚导入时可以运行,但在果断时间后再次运行就报500错误

问题描述 关于hibernate的问题,一个项目刚导入时可以运行,但在果断时间后再次运行就报500错误 具体情况介绍,在某网站下载了一份开源代码之后,第一次导入Eclipse,是可以运行的.但在一段时间之后,再次运行报500错误.期间没有对代码有过任何修改.删除该项目重新解压一份并导入后又可以运行,但过段时间后又不能运行.感觉这个问题很奇怪,有没有大神懂.下面我说一下今天的情况:下午又导入了一次,运行时没问题的,然后我停掉tomcat后,紧接着又运行了一遍,还是可以的.之后我就不再运行这个项目.

myeclipse无法导入项目,为什么,以前还能导入现在不能了?

问题描述 myeclipse无法导入项目,为什么,以前还能导入现在不能了? 解决方案 检查一下有没有.project文件. 找一个.project文件放在你工程目录下再试试. 解决方案二: 那不是写着已经存在了嘛 你还导入 解决方案三: 把你工作空间里的同名项目删掉, 再导入

mysql 数据导出修改表结构后,再导入,新添加的字段插入默认值

问题描述 mysql 数据导出修改表结构后,再导入,新添加的字段插入默认值 要实现的例子: 表A (a0,a1) 拥有数据100条 现在要将表结构修改为,A(a0,a1,a2),但是不想重新输入数据 所以,想先从旧的表中到处数据,然后导入新表,字段a2取默认值或固定值 求解决方案!! 解决方案 在各位大神的提示下,经过测试,alter table A add a2 数据类型 default 值 可以更改表结构 因此呢,我打算先把原表更改结构,导出数据,然后再将原表恢复原样 这样很安全了,不会影响

eclipse-Eclipse 导入Maven 项目第一次没作为Maven项目导入,删了之后第二次就可以了

问题描述 Eclipse 导入Maven 项目第一次没作为Maven项目导入,删了之后第二次就可以了 虽然并不影响使用,但是还是想知道这是为什么? 解决方案 http://blog.csdn.net/yangshh0/article/details/8715858 解决方案二: 导入maven项目Maven项目导入EclipseMaven项目在编译及导入Eclipse时出现的错误汇总处理

hadoop-hue 3.9 hive 查询界面日志无法动态显示

问题描述 hue 3.9 hive 查询界面日志无法动态显示 进入hue hive查询界面,随便执行一个查询,无法动态显示日志,F12查看日志刷新请求返回: {"status": 2, "message": "database is locked"} 后台报错: [15/Mar/2016 00:07:37 -0700] api ERROR error in Traceback (most recent call last): File "

asp.net用gridview做的查询界面,如何添加其它treeview中的状态

问题描述 asp.net用gridview做的查询界面,如何添加其它treeview中的状态 我做的是出租车管理系统,treeview做的管理界面,现在基本功能都实现了,但是例如treeview中申请用车中应该有车辆是否归还的状态,现在要将车辆查询中用gridview后几位置插入车辆状态,这要怎么才能加进去呀, 解决方案 gridview加一列,是否归还状态 不就可以了. 解决方案二: 这归原状态是要从数据库里的申请用车表里调么,那后台cs代码如何编写呀

如何做一个万能的查询界面

问题描述 现在做的系统都需要 复合查询数据库,请问怎样合理设计用户界面? 因为用户大多不是专业人士,太复杂的与或选择,他们不接受,但还要此功能.请问哪位前辈有相关经验交流一下.最好有个贴图或设计思路.谢谢! 解决方案 下面说的关键点可能与你的要求有些出入.我对你这个问题的理解是:如何对查询条件进行合理的与或组合,才能让客户既能理解,也知道简单的操作.1楼的观点:结合tab方式减少查询字段的选择2楼的观点:查询条件的界面展现方式我的观点:使用简单查询+复杂查询(这是目前我见过最多的查询案例)来完成