//1 Function to create csv file from DataTable (you can skip this, if you already have csv file)
public static void CreateCSVfile(DataTable dtable, string strFilePath)
{
StreamWriter sw = new StreamWriter(strFilePath, false);
int icolcount = dtableColumnsCount;
foreach (DataRow drow in dtableRows)
{
for (int i = 0; i < icolcount; i++)
{
if (!ConvertIsDBNull(drow[i]))
{
swWrite(drow[i]ToString());
}
if (i < icolcount - 1)
{
swWrite(",");
}
}
swWrite(swNewLine);
}
swClose();
swDispose();
}
//2 Import data into MySQL database
private void ImportMySQL()
{
DataTable orderDetail = new DataTable("ItemDetail");
DataColumn c = new DataColumn(); // always
orderDetailColumnsAdd(new DataColumn("ID", TypeGetType("SystemInt32")));
orderDetailColumnsAdd(new DataColumn("value", TypeGetType("SystemInt32")));
orderDetailColumnsAdd(new DataColumn("length", TypeGetType("SystemInt32")));
orderDetailColumnsAdd(new DataColumn("breadth", TypeGetType("SystemInt32")));
orderDetailColumnsAdd(new DataColumn("total", TypeGetType("SystemDecimal")));
orderDetailColumns["total"]Expression = "value/(lengthbreadth)"; //Adding dummy entries
DataRow dr = orderDetailNewRow();
dr["ID"] = 1;
dr["value"] = 50;
dr["length"] = 5;
dr["breadth"] = 8;
orderDetailRowsAdd(dr);
dr = orderDetailNewRow();
dr["ID"] = 2;
dr["value"] = 60;
dr["length"] = 15;
dr["breadth"] = 18;
orderDetailRowsAdd(dr); //Adding dummy entries
string connectMySQL = "Server=localhost;Database=test;Uid=username;Pwd=password;";
string strFile = "/TempFolder/MySQL" + DateTimeNowTicksToString() + "csv"; //Create directory if not exist Make sure directory has required rights
if (!DirectoryExists(ServerMapPath("~/TempFolder/")))
DirectoryCreateDirectory(ServerMapPath("~/TempFolder/")); //If file does not exist then create it and right data into it
if (!FileExists(ServerMapPath(strFile)))
{
FileStream fs = new FileStream(ServerMapPath(strFile), FileModeCreate, FileAccessWrite);
fsClose();
fsDispose();
}
//Generate csv file from where data read
CreateCSVfile(orderDetail, ServerMapPath(strFile));
using (MySqlConnection cn1 = new MySqlConnection(connectMySQL))
{
cn1Open();
MySqlBulkLoader bcp1 = new MySqlBulkLoader(cn1);
bcp1TableName = "productorder"; //Create ProductOrder table into MYSQL database
bcp1FieldTerminator = ",";
bcp1LineTerminator = "\r\n";
bcp1FileName = ServerMapPath(strFile);
bcp1NumberOfLinesToSkip = 0;
bcp1Load(); //Once data write into db then delete file
try
{
FileDelete(ServerMapPath(strFile));
}
catch (Exception ex)
{
string str = exMessage;
}
}
}
当然有关系了,数据类型必须和数据库定义一样,其实这个不困难的
你在这里
stmtexecuteUpdate(sql);
打个断点,然后把SQL的值拷贝出来,放到数据库里直接运行一下,什么时候拷贝出来的SQL直接运行没问题了,那么程序也就没问题了。
这么直接往里插,是不对的,字符串类型的字段要加单引号,数值字段类型可以不加引号
但是从TABLE出来的字符串都是STRING,你需要自己转换成数值型变量
就是用getValueAt(intr,intc)啊!用户一旦修改了表的数据,你在监听器里,得到那个table的对象,就可以之间用这个getValueAt方法的如果还是修改之前的,可能有几个可能:1那条数据并没有真正的修改到了table中,这种情况也是最常见的错误解决方法:修改数据不能用简单的setValueAt()方法,而是应该对tablemodel里面的数据做修改,然后setModel(Model),这样传回去的table才是真正已经修改过数据的table,否则就不是,这也是大家都用的方法2自己的监听器写错了,可能在监听器里部分代码有问题其他,应该没有问题了,你看下吧,估计是你的table数据没有真正的插入到table中,不是真正的修改数据,也就是说,你没有用到setModel()方法,而是直接在界面上点击修改数据,没有用到监听器去setModel()
你上面是一个提交表单,向d_insasp这个文件提交数据,这个表单有哪些数据呢?表单里所有的 input 都有一个 name 值,这个name表示各数据的名字,这些就是这个表单提交的数据。提交了,提交到了d_insasp这个文件,所以,我们在d_insasp这个文件里,就要去接数据,然后把数据写入数据库。下面,我详细说一下如何接收数据和把接收的数据写入数据库。
<%
set rs=serverCreateObject("adodbrecordset")
sql="select from tb"
rsopen sql,conn,1,3
rsaddnew
'上面是打开数据表tb,并新建一个插入记录
'我只以前几项数据来说明,其它数据一样用法
,下面用Requestform方法接收上面所说的表单提交过来的数据 name 为 "name" (两个name不要搞混了。)把接收到的数据赋值给t_name
t_name=Requestform("name")
t_pasw1=Requestform("pasw1")
t_pasw2=Requestform("pasw2")
t_email=Requestform("t_email")
……
'依此类推,格式完全一样。这里要对两个密码进行比较,如果不一样得返回提交表单,这个就不细说了。如果两次输入密码一样,则任意保存一个为密码即可。
然后将t_name赋值给新数据集里的t_name项。
rst_name=t_name
rst_pasw1=t_pasw1
'其实数据表里只需要一条密码项,在保存的时候对两次密码进行判断后保存一个即可。
rst_email=t_email
……
'然后对所有的数据赋集写入数据表,用update
rsupdate
rsclose
responsewrite "保存成功!"
%>
这是最基本最简单的,完善的情况还应该涉及到对数据类型的判断,长度的判断等。
以上就是关于自定义datatable怎么mysqldataadapter批量写入数据库全部的内容,包括:自定义datatable怎么mysqldataadapter批量写入数据库、java把JTable中的数据插入到数据库问题、如何更改Swing-JTable单元格中的内容后,存入数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)