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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guoguo 中级黑马   /  2013-11-26 18:48  /  1169 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 guoguo 于 2013-11-26 19:18 编辑

请教一下各位高手:我在建立windows应用程序项目的时候,想把本地文件读入数据库,也建了一个基于服务的数据库,但是连上了数据库,但是,运行时弹出了插入数据成功对话框了,但是,一打开数据库,里面一条记录也没有,而且,用SqlDataReader  读取时,也显示没有记录,怎么回事呢?

      private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                  using(FileStream   filestream=File.OpenRead(openFileDialog1.FileName))
                  {
                      using (StreamReader reader = new StreamReader(filestream))
                      {
                          string s="";
                          while  ((s = reader.ReadLine()) != null)
                          {
                              string[] arr = s.Split('=');
                              string name = arr[0];
                              int score = Convert.ToInt32(arr[1]);
                              using (SqlConnection conn = new SqlConnection(@"Data Source=ZCH-PC\SQLEXPRESS;AttachDBFilename=|DataDirectory|\document.mdf;integrated Security=True;User Instance=True"))
                              {
                                  conn.Open();
                                  using (SqlCommand sql = conn.CreateCommand())
                                  {
                                      sql.CommandText = "insert into T_Person (name,score) values (@n,@s)";
                                      sql.Parameters.Add("n", name);
                                      sql.Parameters.Add("s", score);
                                      sql.ExecuteNonQuery();
                                  }
                              }
                          }
                          MessageBox.Show("数据插入成功");
                      }
                  }
            }
            
        }

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

4 个回复

倒序浏览
sql.Parameters.Add("n", name);
sql.Parameters.Add("s", score);
这两句没有明白你要表达什么?
改成这样试试?
sql.Parameters.Add("@n", name);
sql.Parameters.Add("@s", score);

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

回复 使用道具 举报
之前折腾了半天,问题终于解决了,谢谢!

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

回复 使用道具 举报
V_John 发表于 2013-11-26 18:57
sql.Parameters.Add("n", name);
sql.Parameters.Add("s", score);
这两句没有明白你要表达什么?

版主,在10年入学自学视频(官网上面的)里面ADO.NET入门是sql.Parameters.Add(new SqlParameter("n",name))和现在的sql.Parameters.Add(new SqlParameter("@n",name))??这两个有什么区别??都可以运行成功的;还有sql.Parameters.Add("@n", name);这种方法现在也可以用,但是会提示"已过时",,三种用法有点小疑惑,不是很明白。。:(

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

回复 使用道具 举报
u010209195 发表于 2013-11-26 19:36
版主,在10年入学自学视频(官网上面的)里面ADO.NET入门是sql.Parameters.Add(new SqlParameter("n",name) ...

我认为sql.Parameters.Add(new SqlParameter("n",name))和sql.Parameters.Add(new SqlParameter("@n",name))本质上没有什么区别,都可以,前者会提示“已过时”可能是以前用的人比较多,后来大家都用后者了,所以,这两种都可以,这是我个人理解,没有深入研究过。。。咳咳。。。

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

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