A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁官林 中级黑马   /  2012-4-21 22:40  /  1942 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我的数据能导入,但是导入不正确,age是int类型,导入是正确的,可是name 是string导入就不正确了,高手们,帮帮忙吧{:soso_e183:}
主要代码如下:

private void btnImport_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog()!=DialogResult.OK)
            {
                return;
            }
            using (FileStream fs = File.OpenRead(ofd.FileName))
            {
                using(StreamReader sr=new StreamReader(fs))
                {
                    using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDb1.mdf;Integrated Security=True;User Instance=True"))
                    {
                        conn.Open();
                        using(SqlCommand cmd=conn.CreateCommand())
                        {
                            cmd.CommandText = "insert into T_Table values('@N',@A)";//我写成'@N',数据库中此列插入的是@N,不加并间符写成@N,插入成功后,刷新数据库打开,此列没有插入数据,不知道这是怎么回事?
                            string line = null;
                            while((line=sr.ReadLine())!=null)
                            {
                                string[] strg = line.Split('|');
                                string name=strg[0];
                                int age=Convert.ToInt32(strg[1]);
                                cmd.Parameters.Clear();
                                cmd.Parameters.Add(new SqlParameter("N",name));
                                cmd.Parameters.Add(new SqlParameter("A",age));
                                cmd.ExecuteNonQuery();
                            }
                        }
                    }
                }
            }
            MessageBox.Show("导入成功");
        }

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

2 个回复

倒序浏览
学习了谢谢
回复 使用道具 举报
cmd.CommandText = "insert into T_Table values('@N',@A)";//我写成'@N',数据库中此列插入的是@N,不加并间符写成@N,插入成功后,刷新数据库打开,此列没有插入数据,不知道这是怎么回事?
                            string line = null;

你写成'@N'的话 会被认为成字符串 而不是参数  你想想 sql的语法 insert into 表 values(' ',' ',' ')
是不是所有的单引号里面的数据都被解释成字符串

至于非int的导入不进去你试试不用参数查询能不能导入进去呢

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马