我向数据库ZHAOXIN的Test表中插入了若干条记录,我怎样同时在插入提示中显示给用户多少条记录插入成功了
Insert into Test values(@ID,@Code),
是要一个输出参数吗?怎么操作请教高手
sqlcommand.commandType=commandtype.text;
sqlcommand.commandType="Insert into Test values(@ID,@Code)";
sqlparameter paraID=new sqlparameter("@ID",sqldbtype.varchar,16);
paraID.value=txtID.text;
sqlcommand.parameter.add(paraID);
sqlparameter paraCode=new sqlparameter("@Code",sqldbtype.varchar,20);
paraCode.value=txtID.text;
sqlcommand.parameter.add(paraCode);int nI=sqlcommand.executenonquery();
if(nI>0)
{
messagebox.show("插入数据成功"); ===我要在提示的同时提示用户多少条记录插入成功了
}
Insert into Test values(@ID,@Code),
是要一个输出参数吗?怎么操作请教高手
sqlcommand.commandType=commandtype.text;
sqlcommand.commandType="Insert into Test values(@ID,@Code)";
sqlparameter paraID=new sqlparameter("@ID",sqldbtype.varchar,16);
paraID.value=txtID.text;
sqlcommand.parameter.add(paraID);
sqlparameter paraCode=new sqlparameter("@Code",sqldbtype.varchar,20);
paraCode.value=txtID.text;
sqlcommand.parameter.add(paraCode);int nI=sqlcommand.executenonquery();
if(nI>0)
{
messagebox.show("插入数据成功"); ===我要在提示的同时提示用户多少条记录插入成功了
}
messagebox.show("插入1条数据成功");
int nI=sqlcommand.executenonquery(); 返回0?
存储过程?
foreach (DataRow dr in dt.Rows)
{ //打开数据库连接,执行Sql语句,完成数据添加
string strcon = ConfigurationManager.AppSettings["connstr"];
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlcon; sqlcmd.CommandType = CommandType.Text;
sqlcmd.CommandText = "insert into Test values(@ID,@Code)"; SqlParameter paraAntiCode = new SqlParameter("@ID", SqlDbType.VarChar, 20); paraAntiCode.Value = dr["GoodsCode"].ToString();
sqlcmd.Parameters.Add(paraAntiCode); SqlParameter paraGoodsCode = new SqlParameter("@Code", SqlDbType.VarChar, 16);
paraGoodsCode.Value = dr["AntiFakeCode"].ToString();
sqlcmd.Parameters.Add(paraGoodsCode); nI = sqlcmd.ExecuteNonQuery(); sqlcon.Close();
}
不行的话,你就在存储过程里面定义一个整型的变量,用来记录插入的条数,插入一条就加1,然后用output返回
//循环添加数据进入数据库中的表中
int nAffected = 0;
foreach (DataRow dr in dt.Rows)
{ //打开数据库连接,执行Sql语句,完成数据添加
string strcon = ConfigurationManager.AppSettings["connstr"];
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlcon; sqlcmd.CommandType = CommandType.Text;
sqlcmd.CommandText = "insert into Test values(@ID,@Code)"; SqlParameter paraAntiCode = new SqlParameter("@ID", SqlDbType.VarChar, 20); paraAntiCode.Value = dr["GoodsCode"].ToString();
sqlcmd.Parameters.Add(paraAntiCode); SqlParameter paraGoodsCode = new SqlParameter("@Code", SqlDbType.VarChar, 16);
paraGoodsCode.Value = dr["AntiFakeCode"].ToString();
sqlcmd.Parameters.Add(paraGoodsCode); nI = sqlcmd.ExecuteNonQuery();
if(nI > 0)
nAffected++;
sqlcon.Close();
}if(nAffected > 0)
messagebox.show("插入"+nI.tostring()+"条数据成功");
string strcon = ConfigurationManager.AppSettings["connstr"];
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
int count=0;
foreach (DataRow dr in dt.Rows)
{
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlcon; sqlcmd.CommandType = CommandType.Text;
sqlcmd.CommandText = "insert into Test values(@ID,@Code)"; SqlParameter paraAntiCode = new SqlParameter("@ID", SqlDbType.VarChar, 20); paraAntiCode.Value = dr["GoodsCode"].ToString();
sqlcmd.Parameters.Add(paraAntiCode); SqlParameter paraGoodsCode = new SqlParameter("@Code", SqlDbType.VarChar, 16);
paraGoodsCode.Value = dr["AntiFakeCode"].ToString();
sqlcmd.Parameters.Add(paraGoodsCode); nI = sqlcmd.ExecuteNonQuery();
if(nI>-1)
count++;
}
sqlcon.Close();
messagebox.show("插入"+nAffected.tostring()+"条数据成功");
//循环添加数据进入数据库中的表中
int nAffected = 0;
foreach (DataRow dr in dt.Rows)
{ //打开数据库连接,执行Sql语句,完成数据添加
string strcon = ConfigurationManager.AppSettings["connstr"];
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlcon; sqlcmd.CommandType = CommandType.Text;
sqlcmd.CommandText = "insert into Test values(@ID,@Code)"; SqlParameter paraAntiCode = new SqlParameter("@ID", SqlDbType.VarChar, 20); paraAntiCode.Value = dr["GoodsCode"].ToString();
sqlcmd.Parameters.Add(paraAntiCode); SqlParameter paraGoodsCode = new SqlParameter("@Code", SqlDbType.VarChar, 16);
paraGoodsCode.Value = dr["AntiFakeCode"].ToString();
sqlcmd.Parameters.Add(paraGoodsCode); nI = sqlcmd.ExecuteNonQuery();
if(nI > 0)
{ nAffected++;
}else{
messagebox.show("error");
break;
} sqlcon.Close();
}if(nAffected > 0)
messagebox.show("插入"+nAffected.tostring()+"条数据成功");
文本文件1.txt内容有两列ID和Code
1000000002,7718000690536600
1000000001,0303515618099477
1000000001,6434632113208300
1000000001,82405936070565081000000001,7499482520251378
1000000001,5574554001040363
1000000001,4874231070228455
我要判断ID和code全是数字,并且 ID为10位,code为16位,然后 读取,但是在插入的过程中第四行和第五行有空行,怎么办,要求是遇空行,删除 空行
怎么解决问题
//循环读取文本文件中的数据
while (sreader.Peek() > 0)
{
string str = sreader.ReadLine();
string[] strInfo = str.Split(new char[] { ',' });
string strGoodcode = strInfo[0].ToString();
string strFakecode = strInfo[1].ToString(); bool bLID = IsNum(strGoodcode);
bool blCode = IsNum(strFakecode); //判断防伪码和物流码是否为数字型
if (bLID == true && blCode == true)
{
//判断防伪码是否为16位,物流码是否为10位
if (strGoodcode.Length == 10 && strFakecode.Length == 16)
{
this.StoreData(strGoodcode, strFakecode); //将数据导入虚拟表中
}
else
{
isTrue = false;
break;
}
}
else
{
isNum = false;
break;
}
}
while (sreader.Peek() > 0)
{
string str = sreader.ReadLine();
if(str == "")
continue; string[] strInfo = str.Split(new char[] { ',' });
string strGoodcode = strInfo[0].ToString();
string strFakecode = strInfo[1].ToString(); bool bLID = IsNum(strGoodcode);
bool blCode = IsNum(strFakecode); //判断防伪码和物流码是否为数字型
if (bLID == true && blCode == true)
{
//判断防伪码是否为16位,物流码是否为10位
if (strGoodcode.Length == 10 && strFakecode.Length == 16)
{
this.StoreData(strGoodcode, strFakecode); //将数据导入虚拟表中
}
else
{
isTrue = false;
break;
}
}
else
{
isNum = false;
break;
}
}