
tableObj.Rows.Add(newRow)
这行后面加上
DataRow[] dataRows = tableObj.Select(null, null, DataViewRowState.Added)
然后跟踪一下,看看dataRows是否有行就知道了。
我试过了,你先把数据库里头的music表主键拿掉,然后把button12_Click函数改成我这个样子,newRow["Music"]和newRow["MusicPath"]改成你需要的,就可以保存了。
private void button12_Click(object sender, EventArgs e)
{
try
{
conObj.Open()
//string str = "Insert into music values('" + textBox12.Text + "','" + textBox13.Text + "')"
string str = "Insert into music values(@Music,@MusicPath)"
string strSelect = "Select * from music"
this.cmdObj = new OleDbCommand(str, conObj)
cmdObj.Parameters.Add("Music", OleDbType.VarChar)
cmdObj.Parameters["Music"].SourceColumn = "Music"
cmdObj.Parameters["Music"].SourceVersion = DataRowVersion.Current
cmdObj.Parameters.Add("MusicPath", OleDbType.VarChar)
cmdObj.Parameters["MusicPath"].SourceColumn = "MusicPath"
cmdObj.Parameters["MusicPath"].SourceVersion = DataRowVersion.Current
adObj = new OleDbDataAdapter(strSelect, conObj)
adObj.InsertCommand = cmdObj
DataSet setObj = new DataSet()
adObj.Fill(setObj, "music")
DataTable tableObj = setObj.Tables[0]
DataRow newRow = tableObj.NewRow()
newRow["Music"] = "1"//textBox12.Text//将没有路径和扩展名的文件保存在数据库中
newRow["MusicPath"] = "2"//textBox13.Text//将有路径和扩展名的文保存在数据库中
tableObj.Rows.Add(newRow)
DataRow[] dataRows = tableObj.Select(null, null, DataViewRowState.Added)
adObj.Update(dataRows)
setObj.AcceptChanges()
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString())
}
finally
{
conObj.Close()
}
}
在进行数据库连接测试时,虽然该测试已经成功,但是在保存配置后失败的情况可能有很多种原因。以下是一些常见的可能性:1. 连接字符串错误:当配置文件中的数据库连接字符串不正确时,会导致保存失败。建议再次核对数据库连接信息,确认是否遗漏了关键信息或者数据库信息有误。
2. 数据库服务未启动:当数据库服务未启动时,无法成功进行数据库连接。如果您使用的是本地数据库,请确保数据库服务已经正常启动。如果是远程数据库,可以尝试在服务器端进行远程连接测试,以确认服务端配置是否正确。
3. 数据库访问权限:如果数据库用户没有足够的权限,将会导致数据库连接失败。需要检查配置文件中的用户名及密码是否正确,并确认该用户是否具备访问数据库的权限。
4. 数据库防火墙设置:当数据库防火墙配置不当时,也会影响数据库连接。如果您使用的是远程数据库,在防火墙上开放相应的端口以允许远程连接是必要的。
综上所述,当数据库连接测试成功,但是保存配置失败时,建议逐一检查以上可能的问题,并根据具体情况调整相应的配置信息。如果问题仍然存在,请及时与技术支持人员联系。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)