我用的是VS2005和自带的sql2005我调用存储过程将一条记录写入数据库,VS下直接运行存储过程可以在数据库中永久插入记录,在程序运行时也调用相同的存储过程插入记录了可以显示出来,但关闭程序发现数据库中没有添加任何记录。
程序我是这么写的
public bool InsertPriority(ref SqlConnection myConn,string newPriority)
{
SqlCommand cmd = new SqlCommand("InsertPriority", myConn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p = new SqlParameter("@PriorityTitle", newPriority);
cmd.Parameters.Add(p);
try
{
cmd.ExecuteNonQuery();
}
catch
{
return false;
}
return true;
}请大家帮帮忙,这个问题困扰我好几天了
程序我是这么写的
public bool InsertPriority(ref SqlConnection myConn,string newPriority)
{
SqlCommand cmd = new SqlCommand("InsertPriority", myConn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p = new SqlParameter("@PriorityTitle", newPriority);
cmd.Parameters.Add(p);
try
{
cmd.ExecuteNonQuery();
}
catch
{
return false;
}
return true;
}请大家帮帮忙,这个问题困扰我好几天了
(
@PriorityTitle TEXT
)
AS
insert into Priority
(
PriorityTitle
)
values
(
@PriorityTitle
)
RETURN
存储过程这样写的
修改后的存储过程如下
ALTER PROCEDURE dbo.InsertPriority
(
@PriorityTitle TEXT
)
AS
begin TRAN
insert into Priority
(
PriorityTitle
)
values
(
@PriorityTitle
)
COMMIT TRAN
RETURN
我赋值了,不然也不会在程序中看到加的值。感谢jin_yong(DH的半月刀)
这个好像和是否重新链接数据库没有关系。但就是程序中显示出来,数据库中没有添加记录我想应该是这些函数还有什么讲究,我不会用!
也可能是写数据是写在dataset中了,没有存进数据库。但是我根本就没有用dataset啊。
不知道怎么回事。多谢大家帮忙顶帖!
param.Value = newPriority;
p.Direction = ParameterDirection.Input;可能是LZ在实例化参数的时候没有指定参数大小 和类型
我现在直接执行sql语句也不能把记录插入到数据库,但是执行完sql命令后返回值为1意味着插入数据了,影响一行!
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
{
SqlCommand cmd = new SqlCommand("InsertPriority", myConn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p = new SqlParameter("@PriorityTitle", newPriority);
cmd.Parameters.Add(p);
try
{
cmd.ExecuteNonQuery();
}
catch
{
return false;
}
return true;
}
--------------------------你这样可以是没有执行cmd.ExecuteNonQuery();试下
public bool InsertPriority(ref SqlConnection myConn,string newPriority)
{ try
{
SqlCommand cmd = new SqlCommand("InsertPriority", myConn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p = new SqlParameter("@PriorityTitle", newPriority);
cmd.Parameters.Add(p); cmd.ExecuteNonQuery();
}
catch
{
return false;
}
return true;
}
ki1381
没有报错。wsd2616412
有返回值1,说明影响数据库一行。所以这句执行到了。
static void Main(string[] args)
{
string constring = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\dbuser.mdf;Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection(constring);
string test = "insert into [user] (name) values(" + "'OK'" + ")";
conn.Open();
SqlCommand cmd = new SqlCommand(test, conn);
int i=cmd.ExecuteNonQuery();
Console.WriteLine(i.ToString());
conn.Close();
}
}
我新建一个项目又写了一段程序试试,程序如上。表名为user,
我只想插入数据库一条记录都不能实现,但是返回值i是1,
说明应该插入数据库了,可是关掉程序后,在VS2005中看还是没有加入记录。
不知道怎么回事??