我正在从数据库中调用数据。所有数据都从一个表中调用,并且显示为:例如: 马克是男孩,詹姆斯是男孩,特林是女孩,特米是女孩,.....
我想要实现:
马克是男孩
詹姆斯是男孩
Trin是个女孩
Temi是个女孩
我将如何格式化此代码以实现这一目标?
string query= "INSERT INTO education (institutionname,programme,graduationdate,certawarded)
VALUES ('" + txtboxinstname.Text + "', '" + txtboxprogramme.Text + "', '" + txtboxgraddate.Text + "', '" + txtboxcertawarded.Text + "')";
command = new MySqlCommand(dy_query, con);
command.ExecuteNonQuery();
答案 0 :(得分:0)
好吧,您可以使用verbatim string。
表示要逐字解释字符串文字。在这种情况下,@字符定义了逐字字符串文字。从字面上解释简单的转义序列(例如,反斜杠为“ \”),十六进制转义序列(例如,大写为A的“ \ x0041”)和Unicode转义序列(例如大写的A为“ \ u0041”)。只有引号转义序列(“”)不会按字面意义解释;它产生一个单引号。另外,在逐字内插的字符串括号中,转义序列({{和}})不能按字面解释;他们产生单括号字符。下面的示例定义了两个相同的文件路径,一个使用常规字符串文字,另一个使用逐字字符串文字。这是逐字字符串文字的较常见用法之一。
您也不应该使用字符串连接来构建SQL查询。特别是如果您直接从用户那里获取输入。这将使您进入SQL injection attack。相反,您应该使用参数。
string query = @"INSERT INTO education
(institutionname,programme,graduationdate,certawarded)
VALUES
(@institutionname,@programme,@graduationdate,@certawarded)";
command = new MySqlCommand(query, con);
// I'm not familiar with MySqlCommand. I'm assuming it is similar to SqlCommand, but the
// Parameters property and the AddWithValue method my be named something else. You'll
// have to check for yourself.
command.Parameters.AddWithValue("institutionname", txtboxinstname.Text);
command.Parameters.AddWithValue("programme", txtboxprogramme.Text);
command.Parameters.AddWithValue("graduationdate", txtboxgraddate.Text);
command.Parameters.AddWithValue("certawarded", txtboxcertawarded.Text);
command.ExecuteNonQuery();