您好,我正在尝试从window Form
设计输入数据库记录并使用MS visual C#
进行编程,并使用其他Window Form
批准并输入数据库,我将其称为Form
使用showDialog
,我试图让它进入并使用字符串数组发送数据并发送它
如下
public string[] cashg1
{
get { return dt; }
set { dt = value; }
}
public void Entering(){
form2.ShowDialog();
string[] inputs = new string[10];
DateTime Date = DateTime.Today;
inputs[0] = numb.Text;
inputs[1] = comboBox1.SelectedText;
inputs[2] = owner.Text;
inputs[3] = curency.Text;
inputs[4] = curncyval.Text;
inputs[5] = Depet.Text;
inputs[6] = cridet.Text;
inputs[7] = Convert.ToString(Date);
inputs[8] = note.Text;
form2.addingdata(inputs);
cashg1 = inputs;
}
public void Entring_to database(){inputs = new string[10];
using (SqlConnection connection = new SqlConnection(connectionString))
{
DateTime Date = DateTime.Today;
try
{
SqlCommand cmd = new SqlCommand("INSERT INTO Accont(Account_ID,Account_Name,Owners,Curency,Curncytype,Depet,Credet_devet,Date,Note) VALUES ( @@AccountID, @AccountName, @Owner, @Curncy,@Curncytype,@Depet,@Cridetdevet,@Date,@Note)");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@@AccountID", Convert.ToInt32(inputs[0]));
if (String.IsNullOrEmpty(inputs[0]))
inputs[0] = "323";
cmd.Parameters.AddWithValue("@AccountName", Convert.ToString(inputs[1]));
if (String.IsNullOrEmpty(inputs[1]))
inputs[1] = " ";
cmd.Parameters.AddWithValue("@Owner", inputs[2]);
cmd.Parameters.AddWithValue("@Curncy", inputs[3]);
cmd.Parameters.AddWithValue("@Curncytype", inputs[4]);
cmd.Parameters.AddWithValue("@Depet", inputs[5]);
cmd.Parameters.AddWithValue("@Cridetdevet", inputs[6]);
cmd.Parameters.AddWithValue("@Date", Date);
cmd.Parameters.AddWithValue("@Note", inputs[7]);
connection.Open();//Owner
cmd.ExecuteNonQuery();
}
catch (Exception ee)
{
MessageBox.Show("Error :" + ee.Message);
}
}
}
}
我使用此Form
输入我的数据:
当我点击符合按钮输入datagridview
中的数据时
符合之后,数据必须输入数据库,但是它会输入并给出我的错误
谢谢你的帮助
答案 0 :(得分:1)
AddWithValue
将不会添加参数。
如果要将AccountName设置为空白而不是null,那么您应该在代码中更改这些字符串的顺序(例如,如果输入1为空,则之前参数,而不是之后)
您的代码
cmd.Parameters.AddWithValue("@AccountName", Convert.ToString(inputs[1]));
if (String.IsNullOrEmpty(inputs[1]))
inputs[1] = " ";
应该是
if (String.IsNullOrEmpty(inputs[1]))
inputs[1] = " ";
cmd.Parameters.AddWithValue("@AccountName", Convert.ToString(inputs[1]));
相反,如果输入1为空,如果应在数据库中插入null,则应使用DBNull.Value
cmd.Parameters.AddWithValue("@AccountName", inputs[1] == null ? DBNull.Value : Convert.ToString(inputs[1]));
请参阅msdn以供参考。