1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Data.SqlClient; 7 8 namespace 作业操作数据库 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 //作业: 15 //1、让用户输入一个代号,查到一条数据(car,info),并显示 16 //2、输出提示,输入1删除该数据,输入2修改数据,输入3添加数据 17 //3、当用户输入1,把查到的这条数据删除 18 //4、当用户输入2,提示输入其他值,主键不修改,输入完成,修改这项数据 19 //5、当用户输入3,提示用户输入所有的列,然后保存到数据库 20 21 string [] AR = new string[] { "code","姓名","性别","民族","生日"}; 22 //用户输入代号 23 Console.WriteLine("请输入要查询的代号"); 24 string code = Console.ReadLine(); 25 26 //造连接对象 27 SqlConnection conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=diushiDEwutong0"); 28 29 //造命令对象 30 SqlCommand cmd = conn.CreateCommand(); 31 32 //给命令对象SQL语句 33 cmd.CommandText = "select * from Info where code=@code"; 34 //防注入 35 //该变量绑定参数 36 cmd.Parameters.Clear(); 37 cmd.Parameters.AddWithValue("@code",code); 38 39 //打开连接 40 conn.Open(); 41 42 SqlDataReader dr = cmd.ExecuteReader(); 43 44 if (dr.HasRows) 45 { 46 while (dr.Read()) 47 { 48 int i = 0; 49 50 while (i < dr.FieldCount) 51 { 52 Console.Write(AR[i] + " "); 53 i++; 54 } 55 Console.Write(" "); 56 i = 0; 57 while (i < dr.FieldCount) 58 { 59 Console.Write(dr[i] + " "); 60 i++; 61 } 62 Console.Write(" "); 63 } 64 } 65 else 66 { 67 Console.WriteLine("未查询到数据"); 68 while (true) 69 { 70 dr.Close(); 71 Console.WriteLine("请重新输入要查询的代号"); 72 code = Console.ReadLine(); 73 74 cmd.CommandText = "select * from Info where code=@code"; 75 cmd.Parameters.Clear(); 76 cmd.Parameters.AddWithValue("@code", code); 77 dr = cmd.ExecuteReader(); 78 if (dr.HasRows) 79 { 80 while (dr.Read()) 81 { 82 int i = 0; 83 84 while (i < dr.FieldCount) 85 { 86 Console.Write(AR[i] + " "); 87 i++; 88 } 89 Console.Write(" "); 90 i = 0; 91 while (i < dr.FieldCount) 92 { 93 Console.Write(dr[i] + " "); 94 i++; 95 } 96 Console.Write(" "); 97 } 98 break; 99 } 100 else 101 { 102 Console.WriteLine("未查询到数据"); 103 } 104 } 105 } 106 107 108 while (true) 109 { 110 Console.WriteLine("输入1删除该数据,输入2修改数据,输入3添加数据,输入其他跳出程序"); 111 string s = Console.ReadLine(); 112 if (s ==" 1") 113 { 114 if (dr.HasRows) 115 { 116 Console.WriteLine("确认删除请输入:1"); 117 int sc = int.Parse(Console.ReadLine()); 118 if (sc == 1) 119 { 120 dr.Close(); 121 cmd.CommandText = "delete from Info where code=@code"; 122 cmd.Parameters.Clear(); 123 cmd.Parameters.AddWithValue("@code", code); 124 cmd.ExecuteNonQuery(); 125 Console.WriteLine("删除成功"); 126 } 127 else 128 { 129 Console.WriteLine("取消操作"); 130 } 131 } 132 } 133 else if (s == "2")//修改内容 134 { 135 while (true) 136 { 137 dr.Close(); 138 Console.Write("请输入要修改的列名:"); 139 string str = Console.ReadLine(); 140 string gai = ""; 141 switch (str) 142 { 143 case "姓名": 144 gai = "Name"; 145 break; 146 case "性别": 147 gai = "Sex"; 148 break; 149 case "民族": 150 gai = "Nation"; 151 break; 152 case "生日": 153 gai = "Birthday"; 154 break; 155 default: 156 Console.WriteLine("输入错误"); 157 continue; 158 159 } 160 if (gai == "Sex") 161 { 162 Console.Write("请输入要修改的内容:"); 163 bool sex = Console.ReadLine() == "男" ? true : false; 164 cmd.CommandText = "update Info set " + gai + "='" + sex + "' where Code=@code"; 165 cmd.ExecuteNonQuery(); 166 } 167 else if (gai == "Nation") 168 { 169 string nationcode = "n001"; 170 Console.Write("请输入要修改的内容:"); 171 string nation = Console.ReadLine(); 172 cmd.CommandText = "select Code from Nation where Name = '" + nation + "'"; 173 dr.Close(); 174 dr = cmd.ExecuteReader(); 175 if (dr.HasRows) 176 { 177 dr.Read(); 178 nationcode = dr[0].ToString(); 179 } 180 cmd.CommandText = "update Info set " + gai + "='" + nationcode + "' where Code=@code"; 181 dr.Close(); 182 cmd.ExecuteNonQuery(); 183 } 184 else 185 { 186 Console.Write("请输入要修改的内容:"); 187 string neirong = Console.ReadLine(); 188 cmd.CommandText = "update Info set " + gai + "='" + neirong + "' where Code=@code"; 189 cmd.ExecuteNonQuery(); 190 } 191 Console.WriteLine("修改成功!"); 192 Console.WriteLine("修改后的内容为:"); 193 194 cmd.CommandText = "select * from Info where code=@code"; 195 cmd.Parameters.Clear(); 196 cmd.Parameters.AddWithValue("@code", code); 197 dr = cmd.ExecuteReader(); 198 if (dr.HasRows) 199 { 200 while (dr.Read()) 201 { 202 int i = 0; 203 204 while (i < dr.FieldCount) 205 { 206 Console.Write(AR[i] + " "); 207 i++; 208 } 209 Console.Write(" "); 210 i = 0; 211 while (i < dr.FieldCount) 212 { 213 Console.Write(dr[i] + " "); 214 i++; 215 } 216 Console.Write(" "); 217 } 218 } 219 Console.WriteLine("是否继续修改?继续修改输入1;不修改输入任意键"); 220 int b = int.Parse(Console.ReadLine()); 221 if (b == 1) 222 { 223 Console.WriteLine("继续修改"); 224 } 225 else 226 { 227 break; 228 } 229 230 } 231 232 } 233 else if (s == "3")//添加数据 234 { 235 //让用户输入要添加的内容 236 Console.WriteLine("请输入要添加的代号:"); 237 code = Console.ReadLine(); 238 239 Console.WriteLine("请输入姓名:"); 240 string name = Console.ReadLine(); 241 242 Console.WriteLine("请输入性别:(男或女)"); 243 bool sex = Console.ReadLine() == "男" ? true : false; 244 245 Console.WriteLine("请输入民族:"); 246 string nation = Console.ReadLine(); 247 248 Console.WriteLine("请输入生日:"); 249 string birthday = Console.ReadLine(); 250 251 string nationcode = "n001"; 252 253 //将民族名称转为名族代号 254 cmd.CommandText = "select Code from Nation where Name = '" + nation + "'"; 255 dr.Close(); 256 257 dr = cmd.ExecuteReader(); 258 if (dr.HasRows) 259 { 260 dr.Read(); 261 nationcode = dr[0].ToString(); 262 } 263 //往Info表添加数据 264 cmd.CommandText = "insert into Info values('" + code + "','" + name + "','" + sex + "','" + nationcode + "','" + birthday + "')"; 265 dr.Close(); 266 cmd.ExecuteNonQuery(); 267 Console.WriteLine("添加成功!"); 268 269 Console.WriteLine("添加的内容为:"); 270 cmd.CommandText = "select * from Info where code=@code"; 271 cmd.Parameters.Clear(); 272 cmd.Parameters.AddWithValue("@code", code); 273 dr = cmd.ExecuteReader(); 274 if (dr.HasRows) 275 { 276 while (dr.Read()) 277 { 278 int i = 0; 279 280 while (i < dr.FieldCount) 281 { 282 Console.Write(AR[i] + " "); 283 i++; 284 } 285 Console.Write(" "); 286 i = 0; 287 while (i < dr.FieldCount) 288 { 289 Console.Write(dr[i] + " "); 290 i++; 291 } 292 Console.Write(" "); 293 } 294 } 295 296 } 297 else 298 { 299 Console.WriteLine("程序跳出"); 300 break; 301 } 302 } 303 conn.Close(); 304 Console.ReadLine(); 305 306 307 } 308 } 309 }