黑马程序员技术交流社区

标题: ADO.NET数据导入问题? [打印本页]

作者: 丁官林    时间: 2012-4-21 22:40
标题: ADO.NET数据导入问题?
我的数据能导入,但是导入不正确,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("导入成功");
        }

作者: ︻◣㊣袏邊愛☆    时间: 2012-4-24 18:29
学习了谢谢
作者: 黑马李亮    时间: 2012-4-27 13:07
cmd.CommandText = "insert into T_Table values('@N',@A)";//我写成'@N',数据库中此列插入的是@N,不加并间符写成@N,插入成功后,刷新数据库打开,此列没有插入数据,不知道这是怎么回事?
                            string line = null;

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

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2