CS代码
string txtItem = Request.Form["txtItem"];
string[] items = txtItem.Split(',');
string[] sqlTrans = new string[items.Length];
int id = Convert.ToInt32(SqlHelper.executeScalar("select Max(ID) from VoteTitles", CommandType.Text, null));
for (int i = 0; i < items.Length; i++)
{
if (items[i].Length != 0)
{
sqlTrans[i] = "insert into VoteItems(VoteItem,ID) values('" + items[i] + "','" + id + "')";
}
}
if (SqlHelper.executeTrans(sqlTrans))
{
Response.Redirect("VoteShow.aspx");
}事务代码
public static bool executeTrans(string[] sqlTrans)
{
bool flag = false;
using (SqlConnection con = new SqlConnection(sqlcon))
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
SqlTransaction trans = con.BeginTransaction();
try
{
foreach (string sql in sqlTrans)
{
cmd.Transaction = trans;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
trans.Commit();
flag = true;
}
catch (Exception)
{
trans.Rollback();
flag = false;
}
return flag;
}
}前台是动态添加的 文本框
根据内容写入数据库
运行的时候
说我COMMANDTEXT没有初始化
我怀疑是不是局部变量的问题,帮我看一下吧,谢谢
string txtItem = Request.Form["txtItem"];
string[] items = txtItem.Split(',');
string[] sqlTrans = new string[items.Length];
int id = Convert.ToInt32(SqlHelper.executeScalar("select Max(ID) from VoteTitles", CommandType.Text, null));
for (int i = 0; i < items.Length; i++)
{
if (items[i].Length != 0)
{
sqlTrans[i] = "insert into VoteItems(VoteItem,ID) values('" + items[i] + "','" + id + "')";
}
}
if (SqlHelper.executeTrans(sqlTrans))
{
Response.Redirect("VoteShow.aspx");
}事务代码
public static bool executeTrans(string[] sqlTrans)
{
bool flag = false;
using (SqlConnection con = new SqlConnection(sqlcon))
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
SqlTransaction trans = con.BeginTransaction();
try
{
foreach (string sql in sqlTrans)
{
cmd.Transaction = trans;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
trans.Commit();
flag = true;
}
catch (Exception)
{
trans.Rollback();
flag = false;
}
return flag;
}
}前台是动态添加的 文本框
根据内容写入数据库
运行的时候
说我COMMANDTEXT没有初始化
我怀疑是不是局部变量的问题,帮我看一下吧,谢谢
解决方案 »
- SQL 如何根据指定值获取列名? sql高手进!!!!
- 怎么实现加减乘除?
- .NET我该如何下手呢?
- asp.net怎么在本地连接到远程服务器上的数据库
- 用uniqueidentifier类型做QueryString的参数,怎么查询不出来呢?
- 关闭新窗口时刷新老窗体中的DataGrid。
- 在asp.net中使用的是VB语言,怎么将Textbox中的数字转换成int型
- 急求LINQ三层中如何将图片以XML格式保存到数据库里边??
- 刚刚发现IE的一个死锁类小Bug.很容易测试的
- Datagrid 中的超链列只有一个URL字段,我要传两个参数怎么办
- UML建模统一语言,语言在何处啊,都是图形话的东西,另外,生成代码是什么意思啊,UML可以生成哪种代码??
- 不同变量类型的数组??????????????
处设置个断点看看,每次赋的值,或者说有没有执行赋值的操作。
这个应该是int类型的,单引号去掉试试,你这里是当作字符串了
如果是的话 txtItem[...]的最后一项是空 , 可能就是 没有初始化的原因。sqlTrans 跟 txtItem 长度一样 所以 即使 if (items[i].Length != 0)判断了 sqlTrans 最后一项也是空。另外 cmd.Transaction = trans 可以提到循环外。希望对你有帮助!
txtItem的值是用户输入的内容(文本框由用户自己动态添加)
用逗号来分格
取出后
写入数据库
另外数据都取出来了
断点也试了还是不知道哪里有错
sqlTrans[i]他是为NULL
可他右面的字符串都取出来了啊
阁下没收到信息?
CSDN又不行了
if(Request.Form["txtItem"] != null)
{
// 执行你的代码
}
特加100分
yangxueke
到新帖子来领100分