while ((line = reader.ReadLine())!= null)
{
string[] str = line.Split(',');
string sno = str[0];
string sname = str[1];
command.Parameters.Clear(); //每次插入都要clear参数
command.Parameters.Add(new SqlParameter("sno", sno));
command.Parameters.Add(new SqlParameter("sname", sname));
command.ExecuteNonQuery();
}
如有需要我可以贴出全部代码
16 个解决方案
#1
command.commandtxt=??
#2
数据库不打开直接就执行T-SQL语句了?还是command.commandtext=?
#3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
namespace 文件的导入
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void nybutton_Click(object sender, EventArgs e)
{
if(myimport.ShowDialog()!=DialogResult.OK){
return;
}
//使用FileStream读取文件
using (FileStream fileStream = File.OpenRead(myimport.FileName))
{
string path = AppDomain.CurrentDomain.BaseDirectory;
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\school.mdf;Integrated Security=True;User Instance=True"))
{
using (StreamReader reader = new StreamReader(fileStream))
{
conn.Open();
//向数据库插入数据
using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = "insert into t_student(sno,sname) values(@Sno,@Sname)";
string line = null;
while ((line = reader.ReadLine())!= null)
{
string[] str = line.Split(',');
command.Parameters.Clear(); //每次插入都要清楚参数
command.Parameters.Add(new SqlParameter("Sno", str[0]));
command.Parameters.Add(new SqlParameter("Sname", str[1]));
//int tem=command.ExecuteNonQuery();
if (command.ExecuteNonQuery() > 0)
{
MessageBox.Show("1条数据保存成功");
}
//MessageBox.Show(command.ExecuteNonQuery().ToString());
}
// conn.Dispose();
}
}
}
}
// MessageBox.Show("数据保存成功");
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
namespace 文件的导入
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void nybutton_Click(object sender, EventArgs e)
{
if(myimport.ShowDialog()!=DialogResult.OK){
return;
}
//使用FileStream读取文件
using (FileStream fileStream = File.OpenRead(myimport.FileName))
{
string path = AppDomain.CurrentDomain.BaseDirectory;
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\school.mdf;Integrated Security=True;User Instance=True"))
{
using (StreamReader reader = new StreamReader(fileStream))
{
conn.Open();
//向数据库插入数据
using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = "insert into t_student(sno,sname) values(@Sno,@Sname)";
string line = null;
while ((line = reader.ReadLine())!= null)
{
string[] str = line.Split(',');
command.Parameters.Clear(); //每次插入都要清楚参数
command.Parameters.Add(new SqlParameter("Sno", str[0]));
command.Parameters.Add(new SqlParameter("Sname", str[1]));
//int tem=command.ExecuteNonQuery();
if (command.ExecuteNonQuery() > 0)
{
MessageBox.Show("1条数据保存成功");
}
//MessageBox.Show(command.ExecuteNonQuery().ToString());
}
// conn.Dispose();
}
}
}
}
// MessageBox.Show("数据保存成功");
}
}
}
#4
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\school.mdf;Integrated Security=True;User Instance=True")) ;
conn.Open(); 加上这句。
conn.Open(); 加上这句。
#5
完整的代码已经贴出来了,我不知道是win7和sqlserver不兼容还是怎么的只是不能插入。我尝试过先insert再select这样子可以查到数据 ,可是怎么弄数据库里就是没数据。郁闷的是执行update操作或者delete操作数据库
是OK了,就是insert不OK。要说是不兼容的话会这样吗。晕死了。
是OK了,就是insert不OK。要说是不兼容的话会这样吗。晕死了。
#6
跟兼容没有关系,如果确实open了Connection,并且能正常连接,并且没有报错,那么数据时插入进去了的,但你能确定你看的和你插入的是同一个数据库吗?
#7
这里就一个数据库文件啊,我不可能连了其他的啊。
#8
请将如下两行中的参数名写完整,即@Sno与@Sname:
command.Parameters.Add(new SqlParameter("Sno", str[0]));
command.Parameters.Add(new SqlParameter("Sname", str[1]));
command.Parameters.Add(new SqlParameter("Sno", str[0]));
command.Parameters.Add(new SqlParameter("Sname", str[1]));
#9
我按你说的试过了。还是不好使,command.ExecuteNonQuery() 也返回了1。还是没数据,有可能的话我把你们帮我跑下程序,我照着教程上做的。一个字都不差教程上可以我的不行。差别就在操作系统上,因此我有点怀疑。
#10
command.Parameters.Add(new SqlParameter("@Sno", str[0]));
command.Parameters.Add(new SqlParameter("@Sname", str[1]));
少了@
#11
老大啊,我加上了但是执行后数据库里还是没数据。
#12
str[0],str[1]有值?查一下看
#13
额,请问lz你是从那里判断出代码执行成功了呢??
难道仅仅是运行没有报错??
请确认他是真正按你的想法执行了,而非你认为他执行了。
ps:调试和调试手段是合格程序员必须过的一关。如果是我们,我们不会简单就和人说“执行成功”这句话,我们会去先下断点运行看他是否真的执行到那个地方了,同时我们也会用“sql的事件探查器”去“看”那东西是否真的就像你认为的那样运行了
难道仅仅是运行没有报错??
请确认他是真正按你的想法执行了,而非你认为他执行了。
ps:调试和调试手段是合格程序员必须过的一关。如果是我们,我们不会简单就和人说“执行成功”这句话,我们会去先下断点运行看他是否真的执行到那个地方了,同时我们也会用“sql的事件探查器”去“看”那东西是否真的就像你认为的那样运行了
#14
你说的这个东西用了下,好像什么用也没有。
#15
搞了半天,原来是连接字符串的问题。我把数据存到别的地方了。以后建议大家写连接字符串的时候注意一下。特别是在visual studio里添加的那种数据库。
#16
我还特地问你了:“跟兼容没有关系,如果确实open了Connection,并且能正常连接,并且没有报错,那么数据时插入进去了的,但你能确定你看的和你插入的是同一个数据库吗?”
你还信誓旦旦地回答:“这里就一个数据库文件啊,我不可能连了其他的啊。”
我真的服了你了。
#1
command.commandtxt=??
#2
数据库不打开直接就执行T-SQL语句了?还是command.commandtext=?
#3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
namespace 文件的导入
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void nybutton_Click(object sender, EventArgs e)
{
if(myimport.ShowDialog()!=DialogResult.OK){
return;
}
//使用FileStream读取文件
using (FileStream fileStream = File.OpenRead(myimport.FileName))
{
string path = AppDomain.CurrentDomain.BaseDirectory;
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\school.mdf;Integrated Security=True;User Instance=True"))
{
using (StreamReader reader = new StreamReader(fileStream))
{
conn.Open();
//向数据库插入数据
using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = "insert into t_student(sno,sname) values(@Sno,@Sname)";
string line = null;
while ((line = reader.ReadLine())!= null)
{
string[] str = line.Split(',');
command.Parameters.Clear(); //每次插入都要清楚参数
command.Parameters.Add(new SqlParameter("Sno", str[0]));
command.Parameters.Add(new SqlParameter("Sname", str[1]));
//int tem=command.ExecuteNonQuery();
if (command.ExecuteNonQuery() > 0)
{
MessageBox.Show("1条数据保存成功");
}
//MessageBox.Show(command.ExecuteNonQuery().ToString());
}
// conn.Dispose();
}
}
}
}
// MessageBox.Show("数据保存成功");
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Data.SqlClient;
namespace 文件的导入
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void nybutton_Click(object sender, EventArgs e)
{
if(myimport.ShowDialog()!=DialogResult.OK){
return;
}
//使用FileStream读取文件
using (FileStream fileStream = File.OpenRead(myimport.FileName))
{
string path = AppDomain.CurrentDomain.BaseDirectory;
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\school.mdf;Integrated Security=True;User Instance=True"))
{
using (StreamReader reader = new StreamReader(fileStream))
{
conn.Open();
//向数据库插入数据
using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = "insert into t_student(sno,sname) values(@Sno,@Sname)";
string line = null;
while ((line = reader.ReadLine())!= null)
{
string[] str = line.Split(',');
command.Parameters.Clear(); //每次插入都要清楚参数
command.Parameters.Add(new SqlParameter("Sno", str[0]));
command.Parameters.Add(new SqlParameter("Sname", str[1]));
//int tem=command.ExecuteNonQuery();
if (command.ExecuteNonQuery() > 0)
{
MessageBox.Show("1条数据保存成功");
}
//MessageBox.Show(command.ExecuteNonQuery().ToString());
}
// conn.Dispose();
}
}
}
}
// MessageBox.Show("数据保存成功");
}
}
}
#4
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\school.mdf;Integrated Security=True;User Instance=True")) ;
conn.Open(); 加上这句。
conn.Open(); 加上这句。
#5
完整的代码已经贴出来了,我不知道是win7和sqlserver不兼容还是怎么的只是不能插入。我尝试过先insert再select这样子可以查到数据 ,可是怎么弄数据库里就是没数据。郁闷的是执行update操作或者delete操作数据库
是OK了,就是insert不OK。要说是不兼容的话会这样吗。晕死了。
是OK了,就是insert不OK。要说是不兼容的话会这样吗。晕死了。
#6
跟兼容没有关系,如果确实open了Connection,并且能正常连接,并且没有报错,那么数据时插入进去了的,但你能确定你看的和你插入的是同一个数据库吗?
#7
这里就一个数据库文件啊,我不可能连了其他的啊。
#8
请将如下两行中的参数名写完整,即@Sno与@Sname:
command.Parameters.Add(new SqlParameter("Sno", str[0]));
command.Parameters.Add(new SqlParameter("Sname", str[1]));
command.Parameters.Add(new SqlParameter("Sno", str[0]));
command.Parameters.Add(new SqlParameter("Sname", str[1]));
#9
我按你说的试过了。还是不好使,command.ExecuteNonQuery() 也返回了1。还是没数据,有可能的话我把你们帮我跑下程序,我照着教程上做的。一个字都不差教程上可以我的不行。差别就在操作系统上,因此我有点怀疑。
#10
command.Parameters.Add(new SqlParameter("@Sno", str[0]));
command.Parameters.Add(new SqlParameter("@Sname", str[1]));
少了@
#11
老大啊,我加上了但是执行后数据库里还是没数据。
#12
str[0],str[1]有值?查一下看
#13
额,请问lz你是从那里判断出代码执行成功了呢??
难道仅仅是运行没有报错??
请确认他是真正按你的想法执行了,而非你认为他执行了。
ps:调试和调试手段是合格程序员必须过的一关。如果是我们,我们不会简单就和人说“执行成功”这句话,我们会去先下断点运行看他是否真的执行到那个地方了,同时我们也会用“sql的事件探查器”去“看”那东西是否真的就像你认为的那样运行了
难道仅仅是运行没有报错??
请确认他是真正按你的想法执行了,而非你认为他执行了。
ps:调试和调试手段是合格程序员必须过的一关。如果是我们,我们不会简单就和人说“执行成功”这句话,我们会去先下断点运行看他是否真的执行到那个地方了,同时我们也会用“sql的事件探查器”去“看”那东西是否真的就像你认为的那样运行了
#14
你说的这个东西用了下,好像什么用也没有。
#15
搞了半天,原来是连接字符串的问题。我把数据存到别的地方了。以后建议大家写连接字符串的时候注意一下。特别是在visual studio里添加的那种数据库。
#16
我还特地问你了:“跟兼容没有关系,如果确实open了Connection,并且能正常连接,并且没有报错,那么数据时插入进去了的,但你能确定你看的和你插入的是同一个数据库吗?”
你还信誓旦旦地回答:“这里就一个数据库文件啊,我不可能连了其他的啊。”
我真的服了你了。