首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中datatable取数失败,诸位看看是什么原因,脑子短路了。

2013-04-05 
C#中datatable取数失败,各位看看是什么原因,脑子短路了。。datatable的定义如下:DataTable dt new DataTab

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())
这样的写法可能直接异常 

热点排行