读书人

C#中datatable取数失败诸位看看是什

发布时间: 2013-04-05 10:24:33 作者: rapoo

C#中datatable取数失败,各位看看是什么原因,脑子短路了。。
datatable的定义如下:
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("device");
dt.Columns.Add("devicenum");
dt.Columns.Add("mark");
dt.Columns.Add("state");
this.ViewState.Add("dt", dt);
存数据库的函数如下:

public void setProApply()
{
string str1 = ConfigurationManager.ConnectionStrings["SQLserver"].ConnectionString;
conn1 = new SqlConnection(str1);
conn1.Open();

for (int r = 0; r < dt.Rows.Count; r++)
//for (int r = dt.Rows.Count - 1; r >= 0; r--)
{
for (int m = 1;m <= Convert.ToInt32(dt.Rows[r][3].ToString());m++)
{
string sql1 = "insert into table([a],[b],[c],[d],[e],[f],[g],[h])" +
"values('" + a + "','" + txt_b.Text.ToString() + "','" + txt_c.Text.ToString() + "','" + dt.Rows[r][2].ToString() + "','" + txt_e.Text.ToString() + "','" + txt_f.Text.ToString() + "'," +
"'" + dt.Rows[r][4].ToString() + "','等待处理')";
comm1 = new SqlCommand(sql1, conn1);
try
{
comm1.ExecuteNonQuery();
}
catch (SqlException)
{
Response.Write("<script language=javascript>window.alert('信息添加失败!');</script>");
}
}
}

conn1.Close();


}


不知道为什么就是无法将数据插入到数据库。。 c# 数据库 sqlserver string
[解决办法]
try


insert into table
=>
insert into [table]
[解决办法]
在string sql=那附近添加断点,然后获取最终得到的SQL语句,放到数据库中去运行,看看能不能执行成功,不成功查看对应的问题
[解决办法]
这种数据库操作,你可以尝试这样做
断点sql句=>提取sql语句=>在sql环境下执行sql语句=>检查错误=>处理错误
[解决办法]
设置断点 把SQL语句输出来。 直接放到查询分析器上还能动执行不。然后找原因
[解决办法]
我想问a从哪里来,不有见有初使化

所有东西+null都=null
[解决办法]
1.有抓到异常么
2.sql有点问题,表名字不要取table,"insert into table([a],[b],[c],[d],[e],[f],[g],[h])" 后面引号前多加个空格
3.sql值是null的话第二个循环进去了么
[解决办法]
引用:
引用:在string sql=那附近添加断点,然后获取最终得到的SQL语句,放到数据库中去运行,看看能不能执行成功,不成功查看对应的问题
断点后调试的时候sql的值是null,就算里面的参数没有取到值,sql怎么也不可能是空撒。。
是不是你 string sql1 = "insert into table([a],[b],[c],[d],[e],[f],[g],[h])" +
"values('" + a + "','" + txt_b.Text.ToString() + "','" + txt_c.Text.ToString() + "','" + dt.Rows[r][2].ToString() + "','" + txt_e.Text.ToString() + "','" + txt_f.Text.ToString() + "'," +
"'" + dt.Rows[r][4].ToString() + "','等待处理')";有异常,把这句放到try里面去。。。另外有可能出现错误的都应该放到try里用以捕抓异常
[解决办法]
dt.Rows[r][3] 有值不?

你在外循环,逐次将它输出看看
[解决办法]
引用:
引用:1.有抓到异常么
2.sql有点问题,表名字不要取table,"insert into table([a],[b],[c],[d],[e],[f],[g],[h])" 后面引号前多加个空格
3.sql值是null的话第二个循环进去了么
果然是第二个循环没有 进去,可我找不到理由。。


都知道第二个循环没进去,调试下Convert.ToInt32(dt.Rows[r][3].ToString()) 这个值啊
[解决办法]
values('" + a + "','" + txt_b.Text.ToString() + "','" + txt_c.Text.ToString() + "','" + dt.Rows[r][2].ToString() + "','" + txt_e.Text.ToString() + "','" + txt_f.Text.ToString() + "','" + dt.Rows[r][4].ToString() + "','等待处理')";

依次检查下这些值不就完了吗?
[解决办法]
单步调试一下,看看你的sql语句到底是什么
------解决方案--------------------


m <= Convert.ToInt32(dt.Rows[r][3].ToString())
这样的写法可能直接异常

读书人网 >C#

热点推荐