参数化插入查询中的数据类型不匹配问题

发布于 2024-08-21 01:53:01 字数 1065 浏览 1 评论 0原文

我有这段代码将记录从一个表传输到另一个表

cmd2.CommandText = "select * from " + TableName;
                    reader = cmd2.ExecuteReader();
                    if (reader != null)
                    {

                        String s = "".PadLeft(reader.FieldCount - 1, 'X').Replace("X", "?,") + "?";
                        cmd.CommandText = String.Format("{0} into {1} values ({2})", insertorreplace, TableName, s);

                        StringBuilder sb = new StringBuilder();
                        while (reader.Read())
                        {
                            int i = 0;

                            for (i = 0; i < reader.FieldCount; ++i)
                            {
                                cmd.Parameters.AddWithValue(null,reader[i].ToString()); // data type issue
                            }
                            cmd.ExecuteNonQuery();
                        }
                        reader.Close();
                    }

可能是因为注释行我遇到了数据类型问题。我希望所有的东西都通过字符串传递。

仍在寻找答案

I have this code to transfer records from one-table to the other

cmd2.CommandText = "select * from " + TableName;
                    reader = cmd2.ExecuteReader();
                    if (reader != null)
                    {

                        String s = "".PadLeft(reader.FieldCount - 1, 'X').Replace("X", "?,") + "?";
                        cmd.CommandText = String.Format("{0} into {1} values ({2})", insertorreplace, TableName, s);

                        StringBuilder sb = new StringBuilder();
                        while (reader.Read())
                        {
                            int i = 0;

                            for (i = 0; i < reader.FieldCount; ++i)
                            {
                                cmd.Parameters.AddWithValue(null,reader[i].ToString()); // data type issue
                            }
                            cmd.ExecuteNonQuery();
                        }
                        reader.Close();
                    }

Probably because of the commented line I get data type issue. I want all things to be passed by string.

Still looking for answers

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

亽野灬性zι浪 2024-08-28 01:53:01

如果您要从一个表复制到另一个表,最好的办法是使用 INSERT INTO ... SELECT FROM 在一个查询中完成所有操作。

要修复您的代码,只需从 reader[i] 中删除 .ToString() 即可。

If you're copying from one table to another, the best thing is to do it all in one query with INSERT INTO ... SELECT FROM.

To fix your code, just remove .ToString() from reader[i].

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文